diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index 76fdb9724..60c5c1d3d 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -3163,7 +3163,7 @@ type=Instant name=Amnesia target=player aicode=activate choice reject all(*[-land]|targetedpersonshand) -auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) target(*[-land]|reveal) transforms((,newability[moveto(ownerhand) and!( reject )! all(*[-land]|reveal)])) optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend +auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) target(<1>*[-land]|reveal) transforms((,newability[moveto(ownerhand) and!( reject )! all(*[-land]|reveal)])) optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend text=Target player reveals his or her hand and discards all nonland cards. mana={3}{U}{U}{U} type=Sorcery @@ -14330,8 +14330,8 @@ toughness=1 [card] name=Brainbite target=opponent -aicode=activate reject notatarget(*[-land]|targetedpersonshand) and!( draw:1 controller )! -auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) target(*|reveal) moveto(ownerhand) and!( reject )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend afterrevealed transforms((,newability[draw:1 controller])) oneshot afterrevealedend revealend +aicode=activate reject notatarget(*|targetedpersonshand) and!( draw:1 controller )! +auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) notatarget(<1>*|reveal) transforms((,newability[moveto(ownerhand) all(other *|reveal)],newability[moveto(ownerhand) and!(reject)!])) ueot optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend afterrevealed transforms((,newability[draw:1 controller])) oneshot afterrevealedend revealend text=Target opponent reveals his or her hand. You choose a card from it. That player discards that card. -- Draw a card. mana={2}{U}{B} type=Sorcery @@ -21192,7 +21192,7 @@ type=Sorcery name=Coercion target=opponent aicode=activate reject notatarget(*|targetedpersonshand) -auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) target(*|reveal) moveto(ownerhand) and!( reject )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend +auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) notatarget(<1>*|reveal) transforms((,newability[moveto(ownerhand) all(other *|reveal)],newability[moveto(ownerhand) and!(reject)!])) ueot optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend text=Target opponent reveals his or her hand. You choose a card from it. That player discards that card. mana={2}{B} type=Sorcery @@ -22664,7 +22664,8 @@ type=Instant [/card] [card] name=Corpse Traders -auto={2}{B}{S(creature|mybattlefield)}:target(opponent) reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) target(*|reveal) moveto(ownerhand) and!( reject )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend asSorcery +aicode=activate reject notatarget(*|targetedpersonshand) +auto={2}{B}{S(creature|mybattlefield)}:target(opponent) reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) notatarget(<1>*|reveal) transforms((,newability[moveto(ownerhand) all(other *|reveal)],newability[moveto(ownerhand) and!(reject)!])) ueot optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend asSorcery text={2}{B}, Sacrifice a creature: Target opponent reveals his or her hand. You choose a card from it. That player discards that card. Activate this ability only any time you could cast a sorcery. mana={3}{B} type=Creature @@ -28725,7 +28726,7 @@ toughness=2 name=Despise target=opponent aicode=activate reject notatarget(*[creature;planeswalker]|targetedpersonshand) -auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) target(*[creature;planeswalker]|reveal) moveto(ownerhand) and!( reject )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend +auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) notatarget(<1>*[creature;planeswalker]|reveal) transforms((,newability[moveto(ownerhand) all(other *|reveal)],newability[moveto(ownerhand) and!(reject)!])) ueot optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend text=Target opponent reveals his or her hand. You choose a creature or planeswalker card from it. That player discards that card. mana={B} type=Sorcery @@ -29449,7 +29450,7 @@ toughness=4 name=Diplomacy of the Wastes target=opponent aicode=activate reject notatarget(*[-land]|targetedpersonshand) and!( if type(warrior|mybattlefield)~morethan~0 then life:-2 targetedplayer )! -auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) notatarget(*[-land]|reveal) moveto(ownerhand) and!( reject )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend afterrevealed transforms((,newability[if type(*[warrior]|mybattlefield)~morethan~0 then life:-2 opponent])) oneshot afterrevealedend revealend +auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) notatarget(<1>*[-land]|reveal) transforms((,newability[moveto(ownerhand) all(other *|reveal)],newability[moveto(ownerhand) and!(reject)!])) ueot optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend afterrevealed transforms((,newability[if type(*[warrior]|mybattlefield)~morethan~0 then life:-2 opponent])) oneshot afterrevealedend revealend text=Target opponent reveals his or her hand. You choose a nonland card from it. That player discards that card. If you control a Warrior, that player loses 2 life. mana={2}{B} type=Sorcery @@ -30100,7 +30101,7 @@ type=Sorcery name=Distress target=player aicode=activate reject notatarget(*[-land]|targetedpersonshand) -auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) notatarget(*[-land]|reveal) moveto(ownerhand) and!( reject )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend +auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) notatarget(<1>*[-land]|reveal) transforms((,newability[moveto(ownerhand) all(other *|reveal)],newability[moveto(ownerhand) and!(reject)!])) ueot optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend text=Target player reveals his or her hand. You choose a nonland card from it. That player discards that card. mana={B}{B} type=Sorcery @@ -32761,7 +32762,7 @@ type=Enchantment name=Duress target=opponent aicode=activate reject notatarget(*[-creature;-land]|targetedpersonshand) -auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) notatarget(*[-creature;-land]|reveal) moveto(ownerhand) and!( reject )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend +auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) notatarget(<1>*[-creature;-land]|reveal) transforms((,newability[moveto(ownerhand) all(other *|reveal)],newability[moveto(ownerhand) and!(reject)!])) ueot optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend text=Target opponent reveals his or her hand. You choose a noncreature, nonland card from it. That player discards that card. mana={B} type=Sorcery @@ -35615,8 +35616,8 @@ toughness=2 [card] name=Encroach target=player -aicode=activate reject notatarget(*[-land]|targetedpersonshand) -auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) notatarget(*[-basic]|reveal) moveto(ownerhand) and!( reject )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend +aicode=activate reject notatarget(land[-basic]|targetedpersonshand) +auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) notatarget(<1>land[-basic]|reveal) transforms((,newability[moveto(ownerhand) all(other *|reveal)],newability[moveto(ownerhand) and!(reject)!])) ueot optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend text=Target player reveals his or her hand. You choose a nonbasic land card from it. That player discards that card. mana={B} type=Sorcery @@ -36190,7 +36191,7 @@ toughness=2 name=Entomber Exarch auto=aslongas(creature|mygraveyard) choice moveTo(myhand) target(creature|mygraveyard) aicode=activate reject notatarget(*[-creature]|targetedpersonshand) -auto=choice target(opponent) reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) notatarget(*[-creature]|reveal) moveto(ownerhand) and!( reject )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend +auto=choice target(opponent) reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) notatarget(<1>*[-creature]|reveal) transforms((,newability[moveto(ownerhand) all(other *|reveal)],newability[moveto(ownerhand) and!(reject)!])) ueot optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend text=When Entomber Exarch enters the battlefield, choose one - Return target creature card from your graveyard to your hand; or target opponent reveals his or her hand, you choose a noncreature card from it, then that player discards that card. mana={2}{B}{B} type=Creature @@ -50675,6 +50676,7 @@ subtype=Aura [card] name=Gruesome Discovery target=player +aicode=activate reject notatarget(<2>*|targetedpersonshand) auto=ifnot morbid then ability$!name(discard 2 cards) target(<2>*|myhand) reject!$ targetedplayer auto=if morbid then reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) target(<2>*|reveal) moveto(ownerhand) and!( reject )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend text=Target player discards two cards. -- Morbid - If a creature died this turn, instead that player reveals his or her hand, you choose two cards from it, then that player discards those cards. @@ -52202,7 +52204,8 @@ type=Sorcery [card] name=Harsh Scrutiny target=opponent -auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) target(creature|reveal) moveto(ownerhand) and!( reject )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend +aicode=activate reject notatarget(creature|targetedpersonshand) +auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) notatarget(<1>creature|reveal) transforms((,newability[moveto(ownerhand) all(other *|reveal)],newability[moveto(ownerhand) and!(reject)!])) ueot optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend auto=scry:1 scrycore delayed dontshow donothing scrycoreend scryend text=Target opponent reveals his or her hand. You choose a creature card from it. That player discards that card. Scry 1. mana={B} @@ -52631,7 +52634,8 @@ toughness=1 [card] name=He Who Hungers abilities=flying -auto={1}{S(creature[spirit]|mybattlefield)}:target(opponent) reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) target(*|reveal) moveto(ownerhand) and!( reject )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend asSorcery +aicode=activate reject notatarget(*|targetedpersonshand) +auto={1}{S(creature[spirit]|mybattlefield)}:target(opponent) reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) notatarget(<1>*|reveal) transforms((,newability[moveto(ownerhand) all(other *|reveal)],newability[moveto(ownerhand) and!(reject)!])) ueot optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend asSorcery auto=@movedTo(this|mygraveyard) from(myBattlefield):may moveTo(myhand) target(spirit[manacost<=4]|mygraveyard) text=Flying -- {1}, Sacrifice a Spirit: Target opponent reveals his or her hand. You choose a card from it. That player discards that card. Activate this ability only any time you could cast a sorcery. -- Soulshift 4 (When this dies, you may return target Spirit card with converted mana cost 4 or less from your graveyard to your hand.) mana={4}{B} @@ -58039,7 +58043,7 @@ type=Sorcery name=Inquisition of Kozilek target=player aicode=activate reject notatarget(*[-land;manacost<=3]|targetedpersonshand) -auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) target(*[-land;manacost<=3]|reveal) moveto(ownerhand) and!( reject )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend +auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) notatarget(<1>*[-land;manacost<=3]|reveal) transforms((,newability[moveto(ownerhand) all(other *|reveal)],newability[moveto(ownerhand) and!(reject)!])) ueot optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend text=Target player reveals his or her hand. You choose a nonland card from it with converted mana cost 3 or less. That player discards that card. mana={B} type=Sorcery @@ -70526,9 +70530,10 @@ toughness=4 [/card] [card] name=Mardu Charm +aicode=activate reject notatarget(*[-creature;-land]|targetedpersonshand) auto=choice name(4 Damage) damage:4 target(creature) auto=choice name(2 Warrior tokens) token(Warrior,Creature Warrior,1/1,white) and!( transforms((,newability[first strike ueot])) )!*2 -auto=choice name(discard opponent) target(opponent) reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) target(*[-creature;-land]|reveal) moveto(ownerhand) and!( reject )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend +auto=choice name(discard opponent) target(opponent) reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) notatarget(<1>*|reveal) transforms((,newability[moveto(ownerhand) all(other *|reveal)],newability[moveto(ownerhand) and!(reject)!])) ueot optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend text=Choose one: -- Mardu Charm deals 4 damage to target creature. -- Put two 1/1 white Warrior creature tokens onto the battlefield. They gain first strike until end of turn. -- Target opponent reveals his or her hand. You choose a noncreature, nonland card from it. That player discards that card. mana={R}{W}{B} type=Instant @@ -73432,7 +73437,8 @@ type=Sorcery [/card] [card] name=Mind Slash -auto={B}{S(creature|mybattlefield)}:target(opponent) reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) target(*|reveal) moveto(ownerhand) and!( reject )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend asSorcery +aicode=activate notatarget(*|targetedpersonshand) reject +auto={B}{S(creature|mybattlefield)}:target(opponent) reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) notatarget(<1>*|reveal) transforms((,newability[moveto(ownerhand) all(other *|reveal)],newability[moveto(ownerhand) and!(reject)!])) ueot optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend asSorcery text={B}, Sacrifice a creature: Target opponent reveals his or her hand. You choose a card from it. That player discards that card. Activate this ability only any time you could cast a sorcery. mana={1}{B}{B} type=Enchantment @@ -79257,7 +79263,7 @@ subtype=Equipment name=Nightmare Void target=player aicode=activate reject notatarget(*|targetedpersonshand) -auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) target(*|reveal) moveto(ownerhand) and!( reject )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend +auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) notatarget(<1>*|reveal) transforms((,newability[moveto(ownerhand) all(other *|reveal)],newability[moveto(ownerhand) and!(reject)!])) ueot optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend dredge=dredge(2) text=Target player reveals his or her hand. You choose a card from it. That player discards that card. -- Dredge 2 (If you would draw a card, instead you may put exactly two cards from the top of your library into your graveyard. If you do, return this card from your graveyard to your hand. Otherwise, draw a card.) mana={3}{B} @@ -82920,7 +82926,7 @@ toughness=2 name=Ostracize target=opponent aicode=activate reject notatarget(creature|targetedpersonshand) -auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) target(creature|reveal) moveto(ownerhand) and!( reject )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend +auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) notatarget(<1>creature|reveal) transforms((,newability[moveto(ownerhand) all(other *|reveal)],newability[moveto(ownerhand) and!(reject)!])) ueot optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend text=Target opponent reveals his or her hand. You choose a creature card from it. That player discards that card. mana={B} type=Sorcery @@ -88875,7 +88881,7 @@ subtype=Aura name=Psychic Spear target=player aicode=activate reject notatarget(*[spirit;arcane]|targetedpersonshand) -auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) target(*[spirit;arcane]|reveal) moveto(ownerhand) and!( reject )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend +auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) notatarget(<1>*[spirit;arcane]|reveal) transforms((,newability[moveto(ownerhand) all(other *|reveal)],newability[moveto(ownerhand) and!(reject)!])) ueot optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend text=Target player reveals his or her hand. You choose a Spirit or Arcane card from it. That player discards that card. mana={B} type=Sorcery @@ -96187,8 +96193,8 @@ toughness=1 [card] name=Rootwater Thief auto={U}:flying -auto=@combatdamagefoeof(player) from(this):pay({2}) moveto(exile) and!(shuffle)! notatarget(*|opponentlibrary) -auto=@combatdamageof(player) from(this):pay({2}) moveto(exile) and!(shuffle)! notatarget(*|mylibrary) +aicode=activate target(*|opponentlibrary) moveto(exile) +auto=@combatdamagefoeof(player) from(this):pay({2}) name(search card) Reveal:type:*:opponentlibrary revealzone(opponentlibrary) optionone name(choose card) target(<1>*|reveal) transforms((,newability[all(other *|reveal) moveto(ownerlibrary) and!(shuffle)!],newability[moveto(exile)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend text={U}: Rootwater Thief gains flying until end of turn. -- Whenever Rootwater Thief deals combat damage to a player, you may pay {2}. If you do, search that player's library for a card and exile it, then the player shuffles his or her library. mana={1}{U} type=Creature @@ -96563,7 +96569,9 @@ toughness=1 [/card] [card] name=Ruin in Their Wake -auto=if type(Wastes|mybattlefield)~morethan~0 then moveto(mybattlefield) and!(tap(noevent))! notatarget(land[basic]|mylibrary) else moveto(myhand) notatarget(land[basic]|mylibrary) +aicode=activate transforms((,newability[if type(Wastes|mybattlefield)~morethan~0 then moveto(mybattlefield) and!(tap(noevent))! notatarget(land[basic]|mylibrary) else moveto(myhand) notatarget(land[basic]|mylibrary)])) ueot +auto=if type(Wastes|mybattlefield)~morethan~0 then name(search card) reveal:plibrarycount optionone name(choose card) target(<1>land[basic]|reveal) moveto(ownerlibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(put back) target(<1>*|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=if type(Wastes|mybattlefield)~lessthan~1 then name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>land[basic]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myhand)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend text=Devoid (This card has no color.) -- Search your library for a basic land card and reveal it. You may put that card onto the battlefield tapped if you control a land named Wastes. Otherwise, put that card into your hand. Then shuffle your library. mana={1}{G} abilities=devoid @@ -96857,8 +96865,9 @@ subtype=Aura [/card] [card] name=Rune-Scarred Demon -abilities=flying -auto=moveTo(myhand) target(*|mylibrary) +abilities=flying,hiddenface +aicode=activate moveTo(myhand) target(*|mylibrary) +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>*|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myhand)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend text=Flying -- When Rune-Scarred Demon enters the battlefield, search your library for a card, put it into your hand, then shuffle your library. mana={5}{B}{B} type=Creature @@ -97467,8 +97476,9 @@ toughness=2 [card] name=Sadistic Sacrament target=player -auto=ifnot paid(alternative) then moveto(exile) target(*|targetedpersonslibrary) -auto=if paid(alternative) then moveto(exile) target(*|targetedpersonslibrary) +aicode=activate transforms((,newability[if paid(alternative) then moveto(exile) target(*|targetedpersonslibrary)],newability[ifnot paid(alternative) then moveto(exile) target(*|targetedpersonslibrary)])) ueot +auto=if paid(alternative) then name(search card) Reveal:type:*:targetedpersonslibrary revealzone(targetedpersonslibrary) optionone name(choose card) target(*|reveal) transforms((,newability[all(other *|reveal) moveto(ownerlibrary) and!(shuffle)!],newability[moveto(exile)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend +auto=ifnot paid(alternative) then name(search card) Reveal:type:*:targetedpersonslibrary revealzone(targetedpersonslibrary) optionone name(choose card) target(*|reveal) transforms((,newability[all(other *|reveal) moveto(ownerlibrary) and!(shuffle)!],newability[moveto(exile)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend other={7}{B}{B}{B} name(Kicker) text=Kicker {7} (You may pay an additional {7} as you cast this spell.) -- Search target player's library for up to three cards, exile them, then that player shuffles his or her library. If Sadistic Sacrament was kicked, instead search that player's library for up to fifteen cards, exile them, then that player shuffles his or her library. mana={B}{B}{B} @@ -97529,7 +97539,8 @@ toughness=2 [/card] [card] name=Safewright Quest -auto=moveTo(myHand) notatarget(forest,plains|myLibrary) +aicode=activate target(*[forest;plains]|mylibrary) moveto(myhand) +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>*[forest;plains]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myhand)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend text=Search your library for a Forest or Plains card, reveal it, and put it into your hand. Then shuffle your library. mana={GW} type=Sorcery @@ -97740,7 +97751,8 @@ toughness=3 [/card] [card] name=Sakura-Tribe Elder -auto={S}:moveTo(myBattlefield) and!(tap(noevent))! target(basic|mylibrary) +aicode=activate moveTo(myBattlefield) and!(tap(noevent))! target(land[basic]|myLibrary) +auto={S}:name(search card) reveal:plibrarycount optionone name(choose card) target(land[basic]|reveal) moveto(ownerlibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(put back) target(<1>*|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 text=Sacrifice Sakura-Tribe Elder: Search your library for a basic land card, put that card onto the battlefield tapped, then shuffle your library. mana={1}{G} type=Creature @@ -98054,14 +98066,16 @@ toughness=3 [card] name=Sanctum of Ugin auto={T}:add{1} -auto=@movedto(*[colorless;manacost>=7]|mystack):may name(Sac and search for Colorless Creature) transforms((,newability[sacrifice],newability[moveto(myhand) notatarget(creature[colorless]|mylibrary)])) forever +aicode=activate moveto(myhand) target(creature[colorless]|mylibrary) +auto=@movedto(*[colorless;manacost>=7]|mystack):may pay({S}) name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>creature[colorless]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myhand)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend text={T}: Add {1} to your mana pool. -- Whenever you cast a colorless spell with converted mana cost 7 or greater, you may sacrifice Sanctum of Ugin. If you do, search your library for a colorless creature card, reveal it, put it into your hand, then shuffle your library. type=Land [/card] [card] name=Sanctum Plowbeast abilities=defender -autohand={2}{cycle}:name(plainscycling or islandcycling) moveTo(myhand) target(plains,island|mylibrary) +aicode=activate target(*[plains;island]|mylibrary) moveto(myhand) +autohand={2}{cycle}:name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>*[plains;island]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myhand)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend text=Defender -- Plainscycling {2}, islandcycling {2} ({2}, Discard this card: Search your library for a Plains or Island card, reveal it, and put it into your hand. Then shuffle your library.) mana={4}{W}{U} type=Artifact Creature @@ -98568,9 +98582,10 @@ subtype=Sarkhan [card] name=Sarkhan Unbroken auto=counter(0/0,9,Loyalty) +aicode=activate moveto(mybattlefield) notatarget(creature[dragon]|mylibrary) auto={C(0/0,1,Loyalty)}:name(+1: Draw card) draw:1 controller && transforms((,newability[activatechooseacolor add{chosencolor} activatechooseend])) forever asSorcery auto={C(0/0,-2,Loyalty)}:name(-2: 4/4 dragon token) token(Dragon,creature dragon,4/4,flying,red) controller asSorcery -auto={C(0/0,-8,Loyalty)}:name(-8: Search for any number of dragons) moveto(mybattlefield) notatarget(creature[dragon]|mylibrary) asSorcery +auto={C(0/0,-8,Loyalty)}:name(-8: Search for any number of dragons) reveal:plibrarycount optionone name(choose card) target(creature[dragon]|reveal) moveto(ownerlibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) and!(shuffle)! )! optiontwoend afterrevealed all(tobecast|mylibrary) moveto(ownerlibrary) and!(moveto(ownerbattlefield))! afterrevealedend revealend asSorcery text=+1: Draw a card, then add one mana of any color to your mana pool. -- -2: Put a 4/4 red Dragon creature token with flying onto the battlefield. -- -8: Search your library for any number of Dragon creature cards and put them onto the battlefield. Then shuffle your library. -- Starting Loyalty (4) mana={2}{G}{U}{R} type=Planeswalker @@ -98609,7 +98624,8 @@ type=Instant [/card] [card] name=Sarkhan's Triumph -auto=moveto(myhand) notatarget(creature[dragon]|mylibrary) +aicode=activate target(creature[dragon]|mylibrary) moveto(myhand) +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>creature[dragon]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myhand)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend text=Search your library for a Dragon creature card, reveal it, put it into your hand, then shuffle your library. mana={2}{R} type=Instant @@ -99018,7 +99034,8 @@ toughness=1 [/card] [card] name=Scalding Tarn -auto={L}{T}{S}:moveTo(myBattlefield) target(island,mountain|mylibrary) +aicode=activate moveTo(myBattlefield) target(*[island;mountain]|myLibrary) +auto={L}{T}{S}:name(search card) reveal:plibrarycount optionone name(choose card) target(*[island;mountain]|reveal) moveto(ownerlibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) and!(shuffle)! )! optiontwoend afterrevealed all(tobecast|mylibrary) moveto(ownerlibrary) and!(moveto(ownerbattlefield))! afterrevealedend revealend text={T}, Pay 1 life, Sacrifice Scalding Tarn: Search your library for an Island or Mountain card and put it onto the battlefield. Then shuffle your library. type=Land [/card] @@ -99978,7 +99995,8 @@ type=Sorcery [card] name=Screaming Seahawk abilities=flying -auto=may moveTo(myhand) target(screaming seahawk|mylibrary) +aicode=activate target(screaming seahawk|mylibrary) moveto(myhand) +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>screaming seahawk|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myhand)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend text=Flying -- When Screaming Seahawk enters the battlefield, you may search your library for a card named Screaming Seahawk, reveal it, and put it into your hand. If you do, shuffle your library. mana={4}{U} type=Creature @@ -100548,7 +100566,8 @@ toughness=3 [/card] [card] name=Seahunter -auto={3}{T}:moveTo(myBattlefield) target(merfolk[-sorcery;-instant]|mylibrary) +aicode=activate moveTo(myBattlefield) target(merfolk[-sorcery;-instant]|myLibrary) +auto={3}{T}:name(search card) reveal:plibrarycount optionone name(choose card) target(merfolk[-sorcery;-instant]|reveal) moveto(ownerlibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) and!(shuffle)! )! optiontwoend afterrevealed all(tobecast|mylibrary) moveto(ownerlibrary) and!(moveTo(myBattlefield))! afterrevealedend revealend text={3}, {T}: Search your library for a Merfolk permanent card and put that card onto the battlefield. Then shuffle your library. mana={2}{U}{U} type=Creature @@ -100626,7 +100645,8 @@ type=Enchantment [/card] [card] name=Search for Tomorrow -auto=moveto(mybattlefield) notatarget(basic|mylibrary) +aicode=activate moveTo(myBattlefield) target(land[basic]|myLibrary) +auto=name(search card) reveal:plibrarycount optionone name(choose card) target(land[basic]|reveal) moveto(ownerlibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) and!(shuffle)! )! optiontwoend afterrevealed all(tobecast|mylibrary) moveto(ownerlibrary) and!(moveTo(myBattlefield))! afterrevealedend revealend text=Search your library for a basic land card and put it onto the battlefield. Then shuffle your library. -- Suspend 2 - {G} (Rather than cast this card from your hand, you may pay {G} and exile it with two time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.) mana={2}{G} suspend(2)={g} @@ -100875,7 +100895,8 @@ subtype=Aura name=Secret Salvage target=*[-land]|mygraveyard auto=moveto(exile) -auto=target(*[share!name!]|mylibrary) moveto(myhand) +aicode=activate target(*[share!name!]|mylibrary) moveto(myhand) +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(*[share!name!]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myhand)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend text=Exile target nonland card from your graveyard. Search your library for any number of cards with the same name as that card, reveal them, and put them into your hand. Then shuffle your library. mana={3}{B}{B} type=Sorcery @@ -101053,7 +101074,8 @@ toughness=1 [/card] [card] name=Seedguide Ash -auto=@movedTo(this|graveyard) from(battlefield):target(forest|mylibrary) moveTo(myBattlefield) and!(tap(noevent))! +aicode=activate moveTo(myBattlefield) and!(tap(noevent))! target(forest|myLibrary) +auto=@movedTo(this|graveyard) from(battlefield):name(search card) reveal:plibrarycount optionone name(choose card) target(forest|reveal) moveto(ownerlibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(put back) target(<1>*|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 text=When Seedguide Ash is put into a graveyard from the battlefield, you may search your library for up to three Forest cards and put them onto the battlefield tapped. If you do, shuffle your library. mana={4}{G} type=Creature @@ -119834,7 +119856,7 @@ type=Sorcery name=Thoughtseize target=player aicode=activate reject notatarget(*[-land]|targetedpersonshand) and!( life:-2 controller )! -auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) target(*[-land]|reveal) moveto(ownerhand) and!( transforms((,newability[reject],newability[all(*|reveal) moveto(ownerhand)])) oneshot )! optiononeend optiontwo name(look) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend afterrevealed transforms((,newability[life:-2 controller])) oneshot afterrevealedend revealend +auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) target(<1>*[-land]|reveal) moveto(ownerhand) and!( transforms((,newability[reject],newability[all(*|reveal) moveto(ownerhand)])) oneshot )! optiononeend optiontwo name(look) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend afterrevealed transforms((,newability[life:-2 controller])) oneshot afterrevealedend revealend text=Target player reveals his or her hand. You choose a nonland card from it. That player discards that card. You lose 2 life. mana={B} type=Sorcery @@ -120303,7 +120325,8 @@ subtype=Aura [/card] [card] name=Thrull Surgeon -auto={1}{B}{S}:reject target(*|opponenthand) asSorcery +aicode=activate reject notatarget(*|targetedpersonshand) +auto={1}{B}{S}:target(player) name(target player) reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) notatarget(<1>*|reveal) transforms((,newability[moveto(ownerhand) all(other *|reveal)],newability[moveto(ownerhand) and!(reject)!])) ueot optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend asSorcery text={1}{B}, Sacrifice Thrull Surgeon: Look at target player's hand and choose a card from it. That player discards that card. Activate this ability only any time you could cast a sorcery. mana={1}{B} type=Creature @@ -121342,7 +121365,8 @@ toughness=3 name=Titan's Strength target=creature auto=3/1 -auto=reveal:1 optionone name(Put On Top) target(*|reveal) moveto(mylibrary) optiononeend optiontwo name(put on bottom) target(<1>*|reveal) bottomoflibrary optiontwoend revealend +aicode=activate may bottomoflibrary all(*[zpos=1]|mylibrary) +auto=name(scry cards) reveal:1 optionone name(Put On Top) target(*|reveal) moveto(mylibrary) optiononeend optiontwo name(put on bottom) target(<1>*|reveal) bottomoflibrary optiontwoend revealend text=Target creature gets +3/+1 until end of turn. Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={R} type=Instant @@ -121571,6 +121595,7 @@ type=Sorcery [/card] [card] name=Tomorrow, Azami's Familiar +aicode=activate transforms((,newability[choice all(*[zpos=3]|mylibrary) moveto(myhand) and!(bottomoflibrary all(*[zpos<=2]|mylibrary))!],newability[choice all(*[zpos=2]|mylibrary) moveto(myhand) and!(bottomoflibrary all(*[zpos<=2]|mylibrary))!],newability[choice all(*[zpos=1]|mylibrary) moveto(myhand) and!(bottomoflibrary all(*[zpos<=2]|mylibrary))!])) ueot auto=replacedraw reveal:3 optionone name(Get a card) target(*|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<3>*|reveal) bottomoflibrary optiontwoend revealend text=If you would draw a card, look at the top three cards of your library instead. Put one of those cards into your hand and the rest on the bottom of your library in any order. mana={5}{U} @@ -122166,7 +122191,8 @@ toughness=4 [card] name=Tower Geist abilities=flying -auto=reveal:2 optionone name(Get a card) target(<1>*|reveal) moveto(myhand) optiononeend optiontwo all(*|reveal) moveto(mygraveyard) optiontwoend revealend +aicode=activate transforms((,newability[choice all(*[zpos=2]|mylibrary) moveto(myhand) and!(deplete:1)!],newability[choice all(*[zpos=1]|mylibrary) moveto(myhand) and!(deplete:1)!])) ueot +auto=name(look) reveal:2 optionone name(Get a card) target(<1>*|reveal) moveto(myhand) optiononeend optiontwo all(*|reveal) moveto(mygraveyard) optiontwoend revealend text=Flying -- When Tower Geist enters the battlefield, look at the top two cards of your library. Put one of them into your hand and the other into your graveyard. mana={3}{U} type=Creature @@ -122641,7 +122667,7 @@ toughness=3 name=Transgress the Mind target=player aicode=activate moveto(exile) notatarget(*[manacost>=3]|targetedpersonshand) -auto=Reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) revealtype(*|targetedpersonshand) optionone name(choose discard) notatarget(*[manacost>=3]|reveal) moveto(ownerexile) optiononeend optiontwo name(Put Back) target(*|reveal) transforms((,newability[all(*|reveal) moveto(ownerhand)])) ueot optiontwoend revealend +auto=Reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) revealtype(*|targetedpersonshand) optionone name(choose discard) notatarget(<1>*[manacost>=3]|reveal) transforms((,newability[moveto(ownerhand) all(other *|reveal)],newability[moveto(exile)])) ueot optiononeend optiontwo name(Put Back) target(*|reveal) transforms((,newability[all(*|reveal) moveto(ownerhand)])) ueot optiontwoend revealend text=Devoid (This card has no color.) -- Target player reveals his or her hand. You choose a card from it with converted mana cost 3 or greater and exile that card. mana={1}{B} abilities=devoid @@ -122711,7 +122737,7 @@ type=Instant name=Trapfinder's Trick target=player aicode=activate choice reject all(*[trap]|targetedpersonshand) -auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) target(*[trap]|reveal) moveto(ownerhand) and!( transforms((,newability[reject],newability[all(*[trap]|reveal) moveto(ownerhand) and!(reject)!])) oneshot )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend +auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) target(<1>*[trap]|reveal) moveto(ownerhand) and!( transforms((,newability[reject],newability[all(*[trap]|reveal) moveto(ownerhand) and!(reject)!])) oneshot )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend text=Target player reveals his or her hand and discards all Trap cards. mana={1}{U} type=Sorcery @@ -123362,6 +123388,7 @@ type=Instant [/card] [card] name=Trickery Charm +aicode=name(look) activate name(look) donothing auto=target(creature) flying ueot auto=choice name(choose a type)activatechooseatype target(creature) becomes(removecreaturesubtypes) ueot && becomes(chosentype) ueot activatechooseend auto=choice reveal:4 optionone name(Look) target(*|reveal) doNothing optiononeend optiontwo target(<4>*|reveal) moveto(mylibrary) optiontwoend revealend @@ -124877,6 +124904,7 @@ subtype=Aura [/card] [card] name=Uncovered Clues +aicode=activate target(<4>*[zpos<=4]|mylibrary) name(revealed card) bottomoflibrary name(revealed card) and!(if cantargetcard(*[instant;sorcery]|*) then moveto(myhand))! auto=reveal:4 optionone name(Get Cards) target(*[instant;sorcery]|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<4>*|reveal) bottomoflibrary optiontwoend revealend text=Look at the top four cards of your library. You may reveal up to two instant and/or sorcery cards from among them and put the revealed cards into your hand. Put the rest on the bottom of your library in any order. mana={2}{U} @@ -125377,7 +125405,7 @@ type=Instant name=Unmask target=player aicode=activate reject notatarget(*[-land]|targetedpersonshand) -auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) target(*[-land]|reveal) moveto(ownerhand) and!( reject )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend +auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) notatarget(<1>*[-land]|reveal) transforms((,newability[moveto(ownerhand) all(other *|reveal)],newability[moveto(ownerhand) and!(reject)!])) ueot optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend other={E(other *[black]|myhand)} name(Exile a Black Card from Hand) text=You may exile a black card from your hand rather than pay Unmask's mana cost. -- Target player reveals his or her hand. You choose a nonland card from it. That player discards that card. mana={3}{B} @@ -126587,7 +126615,8 @@ type=Instant name=Vanquish the Foul target=creature[power>=4] auto=destroy -auto=reveal:1 optionone name(Put On Top) target(*|reveal) moveto(mylibrary) optiononeend optiontwo name(put on bottom) target(<1>*|reveal) bottomoflibrary optiontwoend revealend +aicode=activate may bottomoflibrary all(*[zpos=1]|mylibrary) +auto=name(scry cards) reveal:1 optionone name(Put On Top) target(*|reveal) moveto(mylibrary) optiononeend optiontwo name(put on bottom) target(<1>*|reveal) bottomoflibrary optiontwoend revealend text=Destroy target creature with power 4 or greater. Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={5}{W} type=Sorcery @@ -127067,7 +127096,7 @@ type=Land name=Venarian Glimmer target=player aicode=activate reject notatarget(*[-land;manacost<=castx]|targetedpersonshand) -auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) target(*[-land;manacost<=castx]|reveal) moveto(ownerhand) and!( reject )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend +auto=reveal:type:*:targetedpersonshand revealzone(targetedpersonshand) optionone name(choose discards) notatarget(<1>*[-land;manacost<=castx]|reveal) transforms((,newability[moveto(ownerhand) all(other *|reveal)],newability[moveto(ownerhand) and!(reject)!])) ueot optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerhand) and!( all(*|reveal) moveto(ownerhand) )! optiontwoend revealend text=Target player reveals his or her hand. You choose a nonland card with converted mana cost X or less from it. That player discards that card. mana={X}{U} type=Instant @@ -128719,6 +128748,7 @@ toughness=3 [/card] [card] name=Viscera Seer +aicode=activate may bottomoflibrary all(*[zpos=1]|mylibrary) auto={S(creature|myBattlefield)}:reveal:1 optionone name(Put On Top) target(*|reveal) moveto(mylibrary) optiononeend optiontwo name(put on bottom) target(<1>*|reveal) bottomoflibrary optiontwoend revealend text=Sacrifice a creature: Scry 1. (To scry 1, look at the top card of your library, then you may put that card on the bottom of your library.) mana={B} @@ -129818,7 +129848,8 @@ type=Artifact name=Voyage's End target=creature auto=moveto(ownerhand) -auto=reveal:1 optionone name(Put On Top) target(*|reveal) moveto(mylibrary) optiononeend optiontwo name(put on bottom) target(<1>*|reveal) bottomoflibrary optiontwoend revealend +aicode=activate may bottomoflibrary all(*[zpos=1]|mylibrary) +auto=name(scry cards) reveal:1 optionone name(Put On Top) target(*|reveal) moveto(mylibrary) optiononeend optiontwo name(put on bottom) target(<1>*|reveal) bottomoflibrary optiontwoend revealend text=Return target creature to its owner's hand. Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) mana={1}{U} type=Instant @@ -130105,7 +130136,8 @@ type=Sorcery [card] name=Walker of Secret Ways autohand={1}{U}{N}:ninjutsu -auto=@combatdamagefoeof(player) from(this):name(look at opponents hand) target(*|opponenthand) donothing ueot +aicode=name(look) activate name(look) target(*|opponenthand) donothing +auto=@combatdamagefoeof(player) from(this):reveal:ohandcount revealzone(opponenthand) optionone name(look) target(<1>*|reveal) moveto(ownerhand) and!(all(*|reveal) moveto(ownerhand))! optiononeend revealend auto={1}{U}:moveTo(myhand) target(ninja|myBattlefield) myTurnOnly text=Ninjutsu {1}{U} ({1}{U}, Return an unblocked attacker you control to hand: Put this card onto the battlefield from your hand tapped and attacking.) -- Whenever Walker of Secret Ways deals combat damage to a player, look at that player's hand. -- {1}{U}: Return target Ninja you control to its owner's hand. Activate this ability only during your turn. mana={2}{U} @@ -130784,7 +130816,8 @@ type=Artifact [/card] [card] name=Wanderguard Sentry -auto=name(look at opponents hand) target(*|opponenthand) donothing ueot +aicode=name(look) activate name(look) target(*|opponenthand) donothing +auto=target(opponent) name(target opponent) reveal:ohandcount revealzone(opponenthand) optionone name(look) target(<1>*|reveal) moveto(ownerhand) and!(all(*|reveal) moveto(ownerhand))! optiononeend revealend text=When Wanderguard Sentry enters the battlefield, look at target opponent's hand. mana={4}{U} type=Creature @@ -130823,6 +130856,7 @@ toughness=3 [/card] [card] name=Wandering Graybeard +aicode=activate target(*[zpos=1]|mylibrary) moveto(mylibrary) and!(moveto(mylibrary) and!(if cantargetcard(creature[share!types!]|*) then life:4 controller)!)! auto=@each my upkeep:name(Kinship) reveal:1 optionone if type(creature[share!types!]|reveal)~morethan~0 then life:4 controller optiononeend optiontwo name(Put Back On Top) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend text=Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Wandering Graybeard, you may reveal it. If you do, you gain 4 life. mana={3}{W}{W} @@ -131639,6 +131673,7 @@ toughness=4 [/card] [card] name=Waterspout Weavers +aicode=activate target(*[zpos=1]|mylibrary) moveto(mylibrary) and!(moveto(mylibrary) and!(if cantargetcard(creature[share!types!]|*) then lord(creature|mybattlefield) flying ueot)!)! auto=@each my upkeep:name(Kinship) reveal:1 optionone if type(creature[share!types!]|reveal)~morethan~0 then lord(creature|mybattlefield) flying ueot optiononeend optiontwo name(Put Back On Top) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend text=Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Waterspout Weavers, you may reveal it. If you do, each creature you control gains flying until end of turn. mana={3}{U}{U} @@ -133790,6 +133825,7 @@ toughness=2 [/card] [card] name=Winnower Patrol +aicode=activate target(*[zpos=1]|mylibrary) moveto(mylibrary) and!(moveto(mylibrary) and!(if cantargetcard(creature[share!types!]|*) then all(this) counter(1/1) )!)! auto=@each my upkeep:name(Kinship) reveal:1 optionone if type(creature[share!types!]|reveal)~morethan~0 then all(this) counter(1/1,1) optiononeend optiontwo name(Put Back On Top) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend text=Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Winnower Patrol, you may reveal it. If you do, put a +1/+1 counter on Winnower Patrol. mana={2}{G} @@ -134393,6 +134429,7 @@ subtype=Aura [/card] [card] name=Wolf-Skull Shaman +aicode=activate target(*[zpos=1]|mylibrary) moveto(mylibrary) and!(moveto(mylibrary) and!(if cantargetcard(creature[share!types!]|*) then token(Wolf,Creature Wolf,2/2,green))!)! auto=@each my upkeep:name(Kinship) reveal:1 optionone if type(creature[share!types!]|reveal)~morethan~0 then token(Wolf,Creature Wolf,2/2,green) optiononeend optiontwo name(Put Back On Top) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend text=Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Wolf-Skull Shaman, you may reveal it. If you do, put a 2/2 green Wolf creature token onto the battlefield. mana={1}{G} @@ -134815,7 +134852,8 @@ toughness=2 [/card] [card] name=Worldly Counsel -auto=name(Look at My top cards) reveal:pbasiclandtypes optionone name(Get a Card) target(*|reveal) moveto(myhand) optiononeend optiontwo target(<10>*|reveal) bottomoflibrary optiontwoend revealend +aicode=activate target(*[zpos<=pbasiclandtypes]|mylibrary) moveto(myhand) +auto=name(Look) reveal:pbasiclandtypes optionone name(Get a Card) target(*|reveal) moveto(myhand) optiononeend optiontwo target(<10>*|reveal) bottomoflibrary optiontwoend revealend text=Domain - Look at the top X cards of your library, where X is the number of basic land types among lands you control. Put one of those cards into your hand and the rest on the bottom of your library in any order. mana={1}{U} type=Instant @@ -135198,7 +135236,8 @@ toughness=1 [card] name=Wu Scout abilities=horsemanship -auto=name(look at opponents hand) target(*|opponenthand) donothing ueot +aicode=name(look) activate name(look) target(*|opponenthand) donothing +auto=target(opponent) name(target opponent) reveal:ohandcount revealzone(opponenthand) optionone name(look) target(<1>*|reveal) moveto(ownerhand) and!(all(*|reveal) moveto(ownerhand))! optiononeend revealend text=Horsemanship (This creature can't be blocked except by creatures with horsemanship.) -- When Wu Scout enters the battlefield, look at target opponent's hand. mana={1}{U} type=Creature @@ -135208,6 +135247,7 @@ toughness=1 [/card] [card] name=Wu Spy +aicode=activate transforms((,newability[choice all(*[zpos=2]|targetedpersonslibrary) moveto(ownergraveyard)],newability[choice all(*[zpos=1]|targetedpersonslibrary) moveto(ownergraveyard)])) ueot auto=target(player) reveal:2 optionone name(Put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put back) all(*|reveal) moveto(ownerlibrary) optiontwoend revealend text=When Wu Spy enters the battlefield, look at the top two cards of target player's library. Put one of them into his or her graveyard. mana={1}{U} diff --git a/projects/mtg/src/GameObserver.cpp b/projects/mtg/src/GameObserver.cpp index ddb09c15c..4ba14bff3 100644 --- a/projects/mtg/src/GameObserver.cpp +++ b/projects/mtg/src/GameObserver.cpp @@ -691,7 +691,10 @@ void GameObserver::gameStateBasedEffects() players[d]->DeadLifeState(); } //////////////////////////////////// - + //i think this must be limited to reveal display only but we can make an auto close like on android after a targetchooser... + //lets see so far... adding this fixes some cards that rely on card count in hand or library or any zone the needs constant card count... + if (OpenedDisplay) + return; if (mLayers->stackLayer()->count(0, NOT_RESOLVED) != 0) return; if (mLayers->actionLayer()->menuObject)