diff --git a/projects/mtg/bin/Res/sets/primitives/_macros.txt b/projects/mtg/bin/Res/sets/primitives/_macros.txt index a2211016b..5676b4f25 100644 --- a/projects/mtg/bin/Res/sets/primitives/_macros.txt +++ b/projects/mtg/bin/Res/sets/primitives/_macros.txt @@ -210,6 +210,7 @@ #AUTO_DEFINE _RENOWN_($c) this(cantargetcard(*[-renown]) transforms((,newability[@combatdamaged(player) from(this):counter(1/1.$c) && becomes(renown) forever])) # Exile card. Return it to the battlefield under its owner's control at the beginning of the next end step. +# (blink)ueot doesn't work if a creature uses it on itself #AUTO_DEFINE _BLINK_UEOT_ moveto(exile) and!( transforms((,newability[phaseaction[endofturn once checkex] moveto(ownerbattlefield)])) forever )! # Connives. (Draw a card, then discard a card. If you discarded a nonland card, put a +1/+1 counter on this creature.) diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index 67ea4c453..6f5f603ba 100644 --- a/projects/mtg/bin/Res/sets/primitives/borderline.txt +++ b/projects/mtg/bin/Res/sets/primitives/borderline.txt @@ -3167,10 +3167,10 @@ auto=ifnot paid(kicker) then ifnot paid(alternative) then thisforeach(variable{c auto=ifnot paid(kicker) then if paid(alternative) then ability$!name(Sacrifice an artifact) name(Sacrifice an artifact) target(artifact|mybattlefield) sacrifice!$ controller auto=ifnot paid(kicker) then if paid(alternative) then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature|mybattlefield) sacrifice!$ controller auto=ifnot paid(kicker) then if paid(alternative) then ability$!name(Sacrifice a land) name(Sacrifice a land) target(land|mybattlefield) sacrifice!$ controller -auto=if paid(kicker) then if type(*|opponenthand)~equalto~0 then thisforeach(variable{countedamountplus1plusend}) ability$!name(Loose 2 life) name(Loose 2 life) life:-2 controller!$ opponent -auto=if paid(kicker) then if type(*|opponenthand)~morethan~0 then thisforeach(variable{countedamountplus1plusend}) ability$!name(Loose life or discard) choice name(Loose 2 life) life:-2 controller _ choice name(Discard a card) notatarget(*|myhand) reject!$ opponent -auto=if paid(kicker) then if type(*|myhand)~equalto~0 then thisforeach(variable{countedamountplus1plusend}) ability$!name(Loose 2 life) name(Loose 2 life) life:-2 controller!$ controller -auto=if paid(kicker) then if type(*|myhand)~morethan~0 then thisforeach(variable{countedamountplus1plusend}) ability$!name(Loose life or discard) choice name(Loose 2 life) life:-2 controller _ choice name(Discard a card) notatarget(*|myhand) reject!$ controller +auto=if paid(kicker) then if type(*|opponenthand)~equalto~0 then thisforeach(variable{countedamountplus1plusend}) ability$!name(Lose 2 life) name(Lose 2 life) life:-2 controller!$ opponent +auto=if paid(kicker) then if type(*|opponenthand)~morethan~0 then thisforeach(variable{countedamountplus1plusend}) ability$!name(Lose life or discard) choice name(Lose 2 life) life:-2 controller _ choice name(Discard a card) notatarget(*|myhand) reject!$ opponent +auto=if paid(kicker) then if type(*|myhand)~equalto~0 then thisforeach(variable{countedamountplus1plusend}) ability$!name(Lose 2 life) name(Lose 2 life) life:-2 controller!$ controller +auto=if paid(kicker) then if type(*|myhand)~morethan~0 then thisforeach(variable{countedamountplus1plusend}) ability$!name(Lose life or discard) choice name(Lose 2 life) life:-2 controller _ choice name(Discard a card) notatarget(*|myhand) reject!$ controller type=Instant [/card] [card] @@ -3234,7 +3234,7 @@ toughness=3 [card] name=Anointer of Valor abilities=flying -auto=@combat(attacking) source(creature|battlefield):all(trigger[to]) transforms((,newability[pay({3}) counter(1/1)])) oneshot +auto=@combat(attacking) source(creature|mybattlefield):all(trigger[to]) pay[[{3}]] counter(1/1) text=Flying -- Whenever a creature attacks, you may pay 3. When you do, put a +1/+1 counter on that creature. mana={5}{W} type=Creature @@ -3765,7 +3765,7 @@ toughness=1 [card] name=Arcane Lighthouse auto={T}:add{1} -auto={1}{T}::name(Creatures lose hexproof) all(creature|opponentBattlefield) transforms((,newability[-shroud],newability[-hexproof])) ueot +auto={1}{T}:name(Creatures lose hexproof) all(creature|opponentBattlefield) transforms((,newability[-shroud],newability[-hexproof])) ueot text={T}: Add {C}. -- {1}, {T}: Until end of turn, creatures your opponents control lose hexproof and shroud and can't have hexproof or shroud. type=Land [/card] @@ -20882,8 +20882,8 @@ toughness=1 [card] name=Court of Ambition auto=_MONARCH_CONTROLLER_ -auto=@each my upkeep restriction{compare(pmonarch)~equalto~0}:ability$!name(Choose one) choice name(Loose 3 life) life:-3 _ choice name(Discrd a card) reject notatarget(*|myhand)!$ opponent -auto=@each my upkeep restriction{compare(pmonarch)~equalto~1}:ability$!name(Choose one) choice name(Loose 6 life) life:-6 _ choice name(Discrd 2 cards) reject notatarget(<2>*|myhand)!$ opponent +auto=@each my upkeep restriction{compare(pmonarch)~equalto~0}:ability$!name(Choose one) choice name(Lose 3 life) life:-3 _ choice name(Discrd a card) reject notatarget(*|myhand)!$ opponent +auto=@each my upkeep restriction{compare(pmonarch)~equalto~1}:ability$!name(Choose one) choice name(Lose 6 life) life:-6 _ choice name(Discrd 2 cards) reject notatarget(<2>*|myhand)!$ opponent text=When Court of Ambition enters, you become the monarch. -- At the beginning of your upkeep, each opponent loses 3 life unless they discard a card. If you're the monarch, instead each opponent loses 6 life unless they discard two cards. mana={2}{B}{B} type=Enchantment @@ -21429,7 +21429,7 @@ toughness=7 [card] name=Creeping Trailblazer auto=lord(other creature[elemental]|myBattlefield) 1/0 -auto={2}{R}{G}::all(this) foreach(elemental|myBattlefield) 1/1 ueot +auto={2}{R}{G}:all(this) foreach(elemental|myBattlefield) 1/1 ueot text=Other Elementals you control get +1/+0. -- {2}{R}{G}: Creeping Trailblazer gets +1/+1 until end of turn for each Elemental you control. mana={R}{G} type=Creature @@ -24869,7 +24869,7 @@ toughness=6 [card] name=Demon of Loathing abilities=flying, trample -auto=@combatdamaged(player) from(this)::ability$!name(sacrifice a creature) notatarget(creature|myBattlefield) sacrifice!$ opponent +auto=@combatdamaged(player) from(this):ability$!name(sacrifice a creature) notatarget(creature|myBattlefield) sacrifice!$ opponent text=Flying, trample -- Whenever Demon of Loathing deals combat damage to a player, that player sacrifices a creature. mana={5}{B}{B} type=Creature @@ -36182,22 +36182,7 @@ type=Instant [/card] [card] name=Fiery Confluence -auto=choice name(Damage creatures 1 time) damage:1 all(creature|battlefield) -auto=choice name(Damage creatures 2 times) damage:2 all(creature|battlefield) -auto=choice name(Damage creatures 3 times) damage:3 all(creature|battlefield) -auto=choice name(Damage opponent 1 time) damage:2 opponent -auto=choice name(Damage opponent 2 times) damage:4 opponent -auto=choice name(Damage opponent 3 times) damage:6 opponent -auto=choice name(Destroy 1 Artifact) destroy target(<1>*[artifact]|battlefield) -auto=choice name(Destroy 2 Artifacts) destroy target(<2>*[artifact]|battlefield) -auto=choice name(Destroy 3 Artifacts) destroy target(<3>*[artifact]|battlefield) -auto=choice name(Damage creatures 2 times and Damage opponent 1 time) damage:2 all(creature|battlefield) && damage:2 opponent -auto=choice name(Damage creatures 2 times and Destroy 1 Artifact) damage:2 all(creature|battlefield) && destroy target(<1>*[artifact]|battlefield) -auto=choice name(Damage creatures 1 time and Damage opponent 2 times) damage:1 all(creature|battlefield) && damage:4 opponent -auto=choice name(Damage creatures 1 time and Destroy 2 Artifacts) damage:1 all(creature|battlefield) && destroy target(<2>*[artifact]|battlefield) -auto=choice name(Damage opponent 1 time and Destroy 2 Artifacts) damage:2 opponent && destroy target(<2>*[artifact]|battlefield) -auto=choice name(Damage opponent 2 times and Destroy 1 Artifact) damage:4 opponent && destroy target(<1>*[artifact]|battlefield) -auto=choice name(Damage opponent 1 time, Damage creatures 1 time and Destroy 1 Artifact) damage:1 all(creature|battlefield) && damage:2 opponent && destroy target(<1>*[artifact]|battlefield) +auto=thisforeach(variable{3}) ability$!name(Choose one) choice damage:1 all(creature) _ choice damage:2 opponent _ choice destroy target(artifact) !$ controller text=Choose three. You may choose the same mode more than once. -- Fiery Confluence deals 1 damage to each creature. -- Fiery Confluence deals 2 damage to each opponent. -- Destroy target artifact. mana={2}{R}{R} type=Sorcery @@ -44398,8 +44383,8 @@ type=Enchantment [card] name=Grave Consequences auto=draw:1 controller -auto=all(*|mygraveyard) transforms((,newability[choice name(Exile) moveto(exile)],newability[choice name(Loose 1 life) life:-1 controller])) ueot -auto=all(*|opponentgraveyard) transforms((,newability[choice name(Exile) moveto(exile)],newability[choice name(Loose 1 life) life:-1 controller])) ueot +auto=all(*|mygraveyard) transforms((,newability[choice name(Exile) moveto(exile)],newability[choice name(Lose 1 life) life:-1 controller])) ueot +auto=all(*|opponentgraveyard) transforms((,newability[choice name(Exile) moveto(exile)],newability[choice name(Lose 1 life) life:-1 controller])) ueot text=Each player may exile any number of cards from their graveyard. Then each player loses 1 life for each card in their graveyard. -- Draw a card. mana={1}{B} type=Instant @@ -69335,16 +69320,7 @@ toughness=1 [/card] [card] name=Mystic Confluence -auto=choice name(Draw, draw, draw) draw:3 controller -auto=if type(creature|battlefield)~morethan~2 then choice name(Return, Return, Return) name(Return, Return, Return) target(<3>creature|battlefield) moveto(ownerhand) -auto=if type(creature|battlefield)~morethan~1 then choice name(Return, Return, draw) name(Return, Return, draw) draw:1 controller && target(<2>creature|battlefield) moveto(ownerhand) -auto=if type(creature|battlefield)~morethan~0 then choice name(Return, draw, draw) name(Return, draw, draw) target(creature|battlefield) moveto(ownerhand) and!( draw:2 controller )! -auto=if type(creature|battlefield)~morethan~0 then if type(other *|stack)~morethan~0 then choice name(Return, counter, draw) name(Return, counter, draw) name(Return, counter, draw) draw:1 controller && target(creature|battlefield) moveto(ownerhand) and!( target(*|stack) transforms((,newability[pay[[{3}]] name(pay 3 mana) donothing?fizzle])) forever )! -auto=if type(other *|stack)~morethan~0 then choice name(Counter, draw, draw) name(Counter, draw, draw) draw:2 controller && target(*|stack) transforms((,newability[pay[[{3}]] name(pay 3 mana) donothing?fizzle])) forever -auto=if type(creature|battlefield)~morethan~1 then if type(other *|stack)~morethan~0 then choice name(Return, return, counter) choice name(Return, return, counter) choice name(Return, return, counter) target(creature|battlefield) moveto(ownerhand) and!( target(creature|battlefield) moveto(ownerhand) and!( target(*|stack) transforms((,newability[pay[[{3}]] name(pay 3 mana) donothing?fizzle])) forever )! )! -auto=if type(other *|stack)~morethan~1 then choice name(Counter, counter, draw) name(Counter, counter, draw) draw:1 controller && target(<2>*|stack) transforms((,newability[pay[[{3}]] name(pay 3 mana) donothing?fizzle])) forever -auto=if type(creature|battlefield)~morethan~0 then if type(other *|stack)~morethan~1 then choice name(Return, counter, counter) name(Return, counter, counter) name(Return, counter, counter) target(creature|battlefield) moveto(ownerhand) and!( target(<2>*|stack) transforms((,newability[pay[[{3}]] name(pay 3 mana) donothing?fizzle])) forever )! -auto=if type(other *|stack)~morethan~2 then choice name(Counter, counter, counter) name(Counter, counter, counter) name(Counter, counter, counter) target(<3>*|stack) transforms((,newability[pay[[{3}]] name(pay 3 mana) donothing?fizzle])) forever +auto=thisforeach(variable{3}) ability$!name(Choose one) if type(other *|stack)~morethan~1 then choice target(*|stack) transforms((,newability[pay[[{3}]] name(pay 3 mana) donothing?fizzle])) forever _ choice target(creature) moveto(ownerhand) _ choice draw:1 !$ controller text=Choose three. You may choose the same mode more than once. -- Counter target spell unless its controller pays {3}. -- Return target creature to its owner's hand. -- Draw a card. mana={3}{U}{U} type=Instant @@ -79583,12 +79559,12 @@ toughness=4 [/card] [card] name=Profane Command -auto=choice name(Life and Return) life:-X target(player) && moveto(mybattlefield) target(creature[manacost<=X]|mygraveyard) -auto=choice name(Life and -X/-X) life:-X target(player) && -X/-X target(creature) ueot -auto=choice name(Life and Fear) life:-X target(player) && target(creature|battlefield) fear ueot -auto=choice name(Return and -X/-X) moveto(mybattlefield) target(creature[manacost<=X]|mygraveyard) && -X/-X target(creature) ueot -auto=choice name(Return and Fear) moveto(mybattlefield) target(creature[manacost<=X]|mygraveyard) && target(creature|battlefield) fear ueot -auto=choice name(-X/-X and Fear) -X/-X target(creature) ueot && target(creature|battlefield) fear ueot +auto=choice name(Life and Return) life:-X target(player) and!( moveto(mybattlefield) target(creature[manacost<=X]|mygraveyard) )! +auto=choice name(Life and -X/-X) life:-X target(player) and!( -X/-X target(creature) )! +auto=choice name(Life and Fear) life:-X target(player) and!( target(creature|battlefield) fear )! +auto=choice name(Return and -X/-X) moveto(mybattlefield) target(creature[manacost<=X]|mygraveyard) and!( -X/-X target(creature) )! +auto=choice name(Return and Fear) moveto(mybattlefield) target(creature[manacost<=X]|mygraveyard) and!( target(creature|battlefield) fear )! +auto=choice name(-X/-X and Fear) -X/-X target(creature) and!( target(creature|battlefield) fear )! text=Choose two -- Target player loses X life. -- Return target creature card with mana value X or less from your graveyard to the battlefield. -- Target creature gets -X/-X until end of turn. -- Up to X target creatures gain fear until end of turn. (They can't be blocked except by artifact creatures and/or black creatures.) mana={X}{B}{B} type=Sorcery @@ -81595,8 +81571,8 @@ toughness=5 [/card] [card] name=Rain of Gore -auto=@lifeof(player) from(*[-lifefaker]|*):name(Loose life instead) life:-twicethatmuch controller -auto=@lifefoeof(player):name(Loose life instead) life:-twicethatmuch opponent +auto=@lifeof(player) from(*[-lifefaker]|*):name(Lose life instead) life:-twicethatmuch controller +auto=@lifefoeof(player):name(Lose life instead) life:-twicethatmuch opponent text=If a spell or ability would cause its controller to gain life, that player loses that much life instead. mana={B}{R} type=Enchantment @@ -87414,46 +87390,46 @@ toughness=2 [card] name=Rug of Smothering abilities=flying -auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~1}:name(Loose 1 life) life:-1 controller -auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~2}:name(Loose 2 life) life:-2 controller -auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~3}:name(Loose 3 life) life:-3 controller -auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~4}:name(Loose 4 life) life:-3 controller -auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~5}:name(Loose 5 life) life:-3 controller -auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~6}:name(Loose 6 life) life:-3 controller -auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~7}:name(Loose 7 life) life:-3 controller -auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~8}:name(Loose 8 life) life:-3 controller -auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~9}:name(Loose 9 life) life:-3 controller -auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~10}:name(Loose 10 life) life:-10 controller -auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~11}:name(Loose 11 life) life:-11 controller -auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~12}:name(Loose 12 life) life:-12 controller -auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~13}:name(Loose 13 life) life:-13 controller -auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~14}:name(Loose 14 life) life:-14 controller -auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~15}:name(Loose 15 life) life:-15 controller -auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~16}:name(Loose 16 life) life:-16 controller -auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~17}:name(Loose 17 life) life:-17 controller -auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~18}:name(Loose 18 life) life:-18 controller -auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~19}:name(Loose 19 life) life:-19 controller -auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~morethan~19}:name(Loose 20 life) life:-20 controller -auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~1}:name(Loose 1 life) life:-1 opponent -auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~2}:name(Loose 2 life) life:-2 opponent -auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~3}:name(Loose 3 life) life:-3 opponent -auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~4}:name(Loose 4 life) life:-3 opponent -auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~5}:name(Loose 5 life) life:-3 opponent -auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~6}:name(Loose 6 life) life:-3 opponent -auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~7}:name(Loose 7 life) life:-3 opponent -auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~8}:name(Loose 8 life) life:-3 opponent -auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~9}:name(Loose 9 life) life:-3 opponent -auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~10}:name(Loose 10 life) life:-10 opponent -auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~11}:name(Loose 11 life) life:-11 opponent -auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~12}:name(Loose 12 life) life:-12 opponent -auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~13}:name(Loose 13 life) life:-13 opponent -auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~14}:name(Loose 14 life) life:-14 opponent -auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~15}:name(Loose 15 life) life:-15 opponent -auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~16}:name(Loose 16 life) life:-16 opponent -auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~17}:name(Loose 17 life) life:-17 opponent -auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~18}:name(Loose 18 life) life:-18 opponent -auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~19}:name(Loose 19 life) life:-19 opponent -auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~morethan~19}:name(Loose 20 life) life:-20 opponent +auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~1}:name(Lose 1 life) life:-1 controller +auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~2}:name(Lose 2 life) life:-2 controller +auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~3}:name(Lose 3 life) life:-3 controller +auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~4}:name(Lose 4 life) life:-3 controller +auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~5}:name(Lose 5 life) life:-3 controller +auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~6}:name(Lose 6 life) life:-3 controller +auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~7}:name(Lose 7 life) life:-3 controller +auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~8}:name(Lose 8 life) life:-3 controller +auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~9}:name(Lose 9 life) life:-3 controller +auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~10}:name(Lose 10 life) life:-10 controller +auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~11}:name(Lose 11 life) life:-11 controller +auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~12}:name(Lose 12 life) life:-12 controller +auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~13}:name(Lose 13 life) life:-13 controller +auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~14}:name(Lose 14 life) life:-14 controller +auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~15}:name(Lose 15 life) life:-15 controller +auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~16}:name(Lose 16 life) life:-16 controller +auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~17}:name(Lose 17 life) life:-17 controller +auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~18}:name(Lose 18 life) life:-18 controller +auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~equalto~19}:name(Lose 19 life) life:-19 controller +auto=@movedTo(*|mystack) restriction{thisturn(*[instant;sorcery]|mystack)~morethan~19}:name(Lose 20 life) life:-20 controller +auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~1}:name(Lose 1 life) life:-1 opponent +auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~2}:name(Lose 2 life) life:-2 opponent +auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~3}:name(Lose 3 life) life:-3 opponent +auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~4}:name(Lose 4 life) life:-3 opponent +auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~5}:name(Lose 5 life) life:-3 opponent +auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~6}:name(Lose 6 life) life:-3 opponent +auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~7}:name(Lose 7 life) life:-3 opponent +auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~8}:name(Lose 8 life) life:-3 opponent +auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~9}:name(Lose 9 life) life:-3 opponent +auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~10}:name(Lose 10 life) life:-10 opponent +auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~11}:name(Lose 11 life) life:-11 opponent +auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~12}:name(Lose 12 life) life:-12 opponent +auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~13}:name(Lose 13 life) life:-13 opponent +auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~14}:name(Lose 14 life) life:-14 opponent +auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~15}:name(Lose 15 life) life:-15 opponent +auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~16}:name(Lose 16 life) life:-16 opponent +auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~17}:name(Lose 17 life) life:-17 opponent +auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~18}:name(Lose 18 life) life:-18 opponent +auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~equalto~19}:name(Lose 19 life) life:-19 opponent +auto=@movedTo(*|opponentstack) restriction{thisturn(*[instant;sorcery]|opponentstack)~morethan~19}:name(Lose 20 life) life:-20 opponent text=Flying -- Whenever a player casts a spell, they lose 1 life for each spell they've cast this turn. mana={3} type=Artifact Creature @@ -94068,7 +94044,7 @@ type=Land [card] name=Shriveling Rot auto=choice name(Destroy on damage) transforms((,newability[@damaged(creature):all(trigger[to]) destroy])) ueot -auto=choice name(Loose life on death) transforms((,newability[@movedTo(graveyard) from(creature|battlefield):all(trigger[to]) dynamicability])) ueot +auto=choice name(Lose life on death) transforms((,newability[@movedTo(graveyard) from(creature|battlefield):all(trigger[to]) dynamicability])) ueot auto=choice name(Choose both) transforms((,newability[@damaged(creature):all(trigger[to]) destroy],newability[@movedTo(graveyard) from(creature|battlefield):all(trigger[to]) dynamicability])) ueot text=Choose one Until end of turn, whenever a creature is dealt damage, destroy it; or until end of turn, whenever a creature dies, that creature's controller loses life equal to its toughness. -- Entwine {2}{B} (Choose both if you pay the entwine cost.) mana={2}{B}{B} @@ -94263,7 +94239,7 @@ type=Sorcery [card] name=Siege-Gang Lieutenant auto=@each my combatbegins restriction{type(*[iscommander]|mybattlefield)~morethan~0}:_GOBLINTOKEN_*2 -auto={2}{S(goblin|myBattlefield)}::damage:1 target(anytarget) +auto={2}{S(goblin|myBattlefield)}:damage:1 target(anytarget) text=Lieutenant - At the beginning of combat on your turn, if you control your commander, create two 1/1 red Goblin creature tokens. Those tokens gain haste until end of turn. -- {2}, Sacrifice a Goblin: Siege-Gang Lieutenant deals 1 damage to any target. mana={3}{R} type=Creature @@ -95365,7 +95341,7 @@ type=Instant name=Skeletal Swarming auto=lord(skeleton|myBattlefield) trample auto=lord(skeleton|myBattlefield) mustattack -auto=lord(skeleton|myBattlefield) foreach(skeleton|myBattlefield) 1/0 +auto=lord(skeleton|myBattlefield) transforms((,newability[foreach(other skeleton|myBattlefield) 1/0])) auto=@each my endofturn restriction{morbid}:name(Create skeleton) token(Skeleton,Creature Skeleton,1/1,black) and!( tap(noevent) )! auto=@each my endofturn:name(Create skeleton) token(Skeleton,Creature Skeleton,1/1,black) and!( tap(noevent) )! text=Each Skeleton you control has trample, attacks each combat if able, and gets +X/+0, where X is the number of other Skeletons you control. -- At the beginning of your end step, create a tapped 1/1 black Skeleton creature token. If a creature died this turn, create two of those tokens instead. @@ -96236,7 +96212,7 @@ toughness=2 name=Skystrike Officer abilities=flying auto=_ATTACKING_create(soldier:artifact creature soldier:1/1) -auto={T(Soldier|myBattlefield)}{T(Soldier|myBattlefield)}{T(Soldier|myBattlefield)}::draw:1 +auto={T(Soldier|myBattlefield)}{T(Soldier|myBattlefield)}{T(Soldier|myBattlefield)}:draw:1 text=Flying -- Whenever Skystrike Officer attacks, create a 1/1 colorless Soldier artifact creature token. -- Tap three untapped Soldiers you control: Draw a card. mana={2}{U} type=Creature @@ -102974,9 +102950,9 @@ toughness=3 [card] name=Surge Engine abilities=defender -auto={U}:transforms((,newability[-defender],unblockable)) forever -auto=this(cantargetcard(*[-defender]) {2}{U}:name(blue and 5/4) name(blue and 5/4) becomes(,5/4,blue) forever auto=this(cantargetcard(*[blue;-effect]) {4}{U}{U}:draw:3 && becomes(effect) forever +auto=this(cantargetcard(*[-defender]) {2}{U}:name(blue and 5/4) name(blue and 5/4) becomes(,5/4,blue) forever +auto={U}:transforms((,newability[-defender],unblockable)) forever text=Defender -- {U}: Surge Engine loses defender and gains "This creature can't be blocked." -- {2}{U}: Surge Engine becomes blue and has base power and toughness 5/4. Activate only if Surge Engine doesn't have defender. -- {4}{U}{U}: Draw three cards. Activate only if Surge Engine is blue and only once. mana={2} type=Artifact Creature @@ -104195,7 +104171,7 @@ toughness=3 [/card] [card] name=Tainted Remedy -auto=@lifefoeof(player):name(Loose life instead) life:-twicethatmuch opponent +auto=@lifefoeof(player):name(Lose life instead) life:-twicethatmuch opponent text=If an opponent would gain life, that player loses that much life instead. mana={2}{B} type=Enchantment @@ -105736,7 +105712,7 @@ toughness=4 [/card] [card] name=Tergrid's Lantern -auto={T}:target(player) ability$!name(Choose one) choice name(Loose 3 life) life:-3 controller _ choice name(Discard a card) reject notatarget(*|myhand) _ choice name(Sacrifice non-land permanent) sacrifice notatarget(*[-land]|mybattlefield)!$ targetedplayer +auto={T}:target(player) ability$!name(Choose one) choice name(Lose 3 life) life:-3 controller _ choice name(Discard a card) reject notatarget(*|myhand) _ choice name(Sacrifice non-land permanent) sacrifice notatarget(*[-land]|mybattlefield)!$ targetedplayer auto={3}{B}:untap all(this) text={T}: Target player loses 3 life unless they sacrifice a nonland permanent or discard a card. -- {3}{B}: Untap Tergrid's Lantern. // {3}{B}{B} Tergrid, God of Fright mana={3}{B} @@ -109503,8 +109479,8 @@ restriction=never autocommandzone=transforms((,newability[shroud],indestructible)) forever autocommandzone=@counteradded(0/0,1,Explore) from(Tomb of Annihilation|mycommandzone) restriction{compare(hascntexplore)~equalto~1}:thisforeach(variable{type:*[twodngtrg]:myBattlefieldplus1plusend}) ability$!name(Trapped Entry) name(Trapped Entry) life:-1 controller && life:-1 opponent!$ controller autocommandzone=@counteradded(0/0,1,Explore) from(Tomb of Annihilation|mycommandzone) restriction{compare(hascntexplore)~equalto~2}:ability$!name(Veils of Fear or Oubliette) transforms((,newability[choice name(Veils of Fear) activate castcard(copied noevent kicked!:1:! named!:annihilation rooms:!)],newability[if type(*|myhand)~morethan~0 then choice name(Oubliette) name(Oubliette) activate castcard(copied noevent normal named!:annihilation rooms:!)])) oneshot!$ controller -autocommandzone=@counteradded(0/0,1,Explore) from(Tomb of Annihilation|mycommandzone) restriction{compare(hascntexplore)~equalto~3,compare(hascntoubliette)~equalto~0}:thisforeach(variable{type:*[twodngtrg]:myBattlefieldplus1plusend}) ability$!name(Sandfall Cell) name(Sandfall Cell) transforms((,newability[choice name(Loose 2 life) life:-2 controller],newability[if type(artifact|mybattlefield)~morethan~0 then if type(creature|mybattlefield)~morethan~0 then if type(land|mybattlefield)~morethan~0 then choice name(Sacrifice cards) name(Sacrifice cards) name(Sacrifice cards) name(Sacrifice cards) activate castcard(copied alternative noevent named!:annihilation rooms:!)])) oneshot!$ controller -autocommandzone=@counteradded(0/0,1,Explore) from(Tomb of Annihilation|mycommandzone) restriction{compare(hascntexplore)~equalto~3,compare(hascntoubliette)~equalto~0}:thisforeach(variable{type:*[twodngtrg]:myBattlefieldplus1plusend}) ability$!name(Sandfall Cell) name(Sandfall Cell) transforms((,newability[choice name(Loose 2 life) life:-2 controller],newability[if type(artifact|mybattlefield)~morethan~0 then if type(creature|mybattlefield)~morethan~0 then if type(land|mybattlefield)~morethan~0 then choice name(Sacrifice cards) name(Sacrifice cards) name(Sacrifice cards) name(Sacrifice cards) activate castcard(copied alternative noevent named!:annihilation rooms:!)])) oneshot!$ opponent +autocommandzone=@counteradded(0/0,1,Explore) from(Tomb of Annihilation|mycommandzone) restriction{compare(hascntexplore)~equalto~3,compare(hascntoubliette)~equalto~0}:thisforeach(variable{type:*[twodngtrg]:myBattlefieldplus1plusend}) ability$!name(Sandfall Cell) name(Sandfall Cell) transforms((,newability[choice name(Lose 2 life) life:-2 controller],newability[if type(artifact|mybattlefield)~morethan~0 then if type(creature|mybattlefield)~morethan~0 then if type(land|mybattlefield)~morethan~0 then choice name(Sacrifice cards) name(Sacrifice cards) name(Sacrifice cards) name(Sacrifice cards) activate castcard(copied alternative noevent named!:annihilation rooms:!)])) oneshot!$ controller +autocommandzone=@counteradded(0/0,1,Explore) from(Tomb of Annihilation|mycommandzone) restriction{compare(hascntexplore)~equalto~3,compare(hascntoubliette)~equalto~0}:thisforeach(variable{type:*[twodngtrg]:myBattlefieldplus1plusend}) ability$!name(Sandfall Cell) name(Sandfall Cell) transforms((,newability[choice name(Lose 2 life) life:-2 controller],newability[if type(artifact|mybattlefield)~morethan~0 then if type(creature|mybattlefield)~morethan~0 then if type(land|mybattlefield)~morethan~0 then choice name(Sacrifice cards) name(Sacrifice cards) name(Sacrifice cards) name(Sacrifice cards) activate castcard(copied alternative noevent named!:annihilation rooms:!)])) oneshot!$ opponent autocommandzone=@counteradded(0/0,1,Explore) from(Tomb of Annihilation|mycommandzone) restriction{compare(hascntexplore)~equalto~3,compare(hascntoubliette)~equalto~1}:choice name(Dungeon completed) all(Tomb of Annihilation|mycommandzone) completedungeon:1 controller autocommandzone=@counteradded(0/0,1,Explore) from(Tomb of Annihilation|mycommandzone) restriction{compare(hascntexplore)~equalto~3,compare(hascntoubliette)~equalto~1}:thisforeach(variable{type:*[twodngtrg]:myBattlefieldplus1plusend}) ability$!name(Cradle of the Death God) name(Cradle of the Death God) token(The Atropal)!$ controller autocommandzone=@counteradded(0/0,1,Explore) from(Tomb of Annihilation|mycommandzone) restriction{compare(hascntexplore)~equalto~4}:choice name(Dungeon completed) all(Tomb of Annihilation|mycommandzone) completedungeon:1 controller @@ -110590,7 +110566,7 @@ type=Sorcery name=Treasure Chest auto={4}:name(Roll a d20) rolld20 20 winability donothing winabilityend rolld20end auto=@dierolled(this) from(controller):all(this) sacrifice -auto=@dierolled(this) result(1) from(controller):name(Loose life) life:-3 controller +auto=@dierolled(this) result(1) from(controller):name(Lose life) life:-3 controller auto=@dierolled(this) result(2) from(controller):name(Create treasure) _TREASURE_*5 auto=@dierolled(this) result(3) from(controller):name(Create treasure) _TREASURE_*5 auto=@dierolled(this) result(4) from(controller):name(Create treasure) _TREASURE_*5 @@ -114702,16 +114678,7 @@ type=Instant [/card] [card] name=Verdant Confluence -aicode=activate moveTo(myBattlefield) and!(tap(noevent))! target(<3>land[basic]|myLibrary) -auto=choice name(Choose 1, 1, 1) target(<3>*[creature]) counter(1/1,2) -auto=choice name(Choose 1, 1, 2) target(<2>*[creature]) counter(1/1,2) && ability$!name(Return permanent to hand) moveto(ownerHand) target(*[-sorcery;-instant]|mygraveyard)!$ controller -auto=choice name(Choose 1, 2, 2) target(*[creature]) counter(1/1,2) && ability$!name(Return 2 permanents to hand) moveto(ownerHand) target(<2>*[-sorcery;-instant]|mygraveyard)!$ controller -auto=choice name(Choose 1, 2, 3) target(*[creature]) counter(1/1,2) && ability$!name(Return permanent to hand) moveto(ownerHand) target(*[-sorcery;-instant]|mygraveyard)!$ controller && ability$!name(Reveal) reveal:plibrarycount optionone name(choose land card) target(<1>land[basic]|reveal) moveto(ownerlibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(put back) target(*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) and!(shuffle)! )! optiontwoend afterrevealed all(tobecast|mylibrary) moveto(ownerlibrary) and!(moveTo(myBattlefield) and!(tap(noevent))!)! afterrevealedend revealend!$ controller -auto=choice name(Choose 1, 3, 3) target(*[creature]) counter(1/1,2) && ability$!name(Reveal) reveal:plibrarycount optionone name(choose 2 land cards) target(<2>land[basic]|reveal) moveto(ownerlibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(put back) target(*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) and!(shuffle)! )! optiontwoend afterrevealed all(tobecast|mylibrary) moveto(ownerlibrary) and!(moveTo(myBattlefield) and!(tap(noevent))!)! afterrevealedend revealend!$ controller -auto=choice name(Choose 2, 2, 2) target(<3>*[-sorcery;-instant]|mygraveyard) moveto(ownerHand) -auto=choice name(Choose 2, 2, 3) target(<2>*[-sorcery;-instant]|mygraveyard) moveto(ownerHand) && ability$!name(Reveal) reveal:plibrarycount optionone name(choose land card) target(<1>land[basic]|reveal) moveto(ownerlibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(put back) target(*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) and!(shuffle)! )! optiontwoend afterrevealed all(tobecast|mylibrary) moveto(ownerlibrary) and!(moveTo(myBattlefield) and!(tap(noevent))!)! afterrevealedend revealend!$ controller -auto=choice name(Choose 2, 3, 3) target(*[-sorcery;-instant]|mygraveyard) moveto(ownerHand) && ability$!name(Reveal) reveal:plibrarycount optionone name(choose 2 land cards) target(<2>land[basic]|reveal) moveto(ownerlibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(put back) target(*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) and!(shuffle)! )! optiontwoend afterrevealed all(tobecast|mylibrary) moveto(ownerlibrary) and!(moveTo(myBattlefield) and!(tap(noevent))!)! afterrevealedend revealend!$ controller -auto=choice name(Choose 3, 3, 3) reveal:plibrarycount optionone name(choose 3 land cards) target(<3>land[basic]|reveal) moveto(ownerlibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(put back) target(*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) and!(shuffle)! )! optiontwoend afterrevealed all(tobecast|mylibrary) moveto(ownerlibrary) and!(moveTo(myBattlefield) and!(tap(noevent))!)! afterrevealedend revealend +auto=thisforeach(variable{3}) ability$!name(Choose one) choice target(*[creature]) counter(1/1,2) _ choice target(*[-sorcery;-instant]|mygraveyard) moveto(ownerHand) _ choice moveto(mybattlefield) target(land[basic]|mylibrary) and!(tap(noevent))! !$ controller text=Choose three. You may choose the same mode more than once. -- Put two +1/+1 counters on target creature. -- Return target permanent card from your graveyard to your hand. -- Search your library for a basic land card, put it onto the battlefield tapped, then shuffle. mana={4}{G}{G} type=Sorcery diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index 38fc52294..fdeb28888 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -65055,7 +65055,7 @@ toughness=3 [card] name=Kuon, Ogre Ascendant doublefaced=kamiflip -auto=@each my endofturn restriction{compare(bothalldeadcreature)~morethan~2}::flip(Kuon's Essence) +auto=@each my endofturn restriction{compare(bothalldeadcreature)~morethan~2}:flip(Kuon's Essence) text=At the beginning of the end step, if three or more creatures died this turn, flip Kuon, Ogre Ascendant. mana={B}{B}{B} type=Legendary Creature @@ -84013,7 +84013,7 @@ type=Sorcery [/card] [card] name=Painful Quandary -auto=@movedTo(*|opponentstack):choice name(make opponent choose) ability$!choice name(loose 5 life) life:-5 _ choice name(discard) target(*|myhand) reject!$ opponent +auto=@movedTo(*|opponentstack):choice name(make opponent choose) ability$!choice name(Lose 5 life) life:-5 _ choice name(discard) target(*|myhand) reject!$ opponent text=Whenever an opponent casts a spell, that player loses 5 life unless they discards a card. mana={3}{B}{B} type=Enchantment