From 19f0c653d14ffa70b859d000b201464fd5f6e2b8 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Sun, 26 Feb 2017 09:36:32 +0800 Subject: [PATCH 1/6] add 1k to steal credits maxglee profile --- projects/mtg/src/GameStateShop.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/mtg/src/GameStateShop.cpp b/projects/mtg/src/GameStateShop.cpp index b75c13f65..956ff7810 100644 --- a/projects/mtg/src/GameStateShop.cpp +++ b/projects/mtg/src/GameStateShop.cpp @@ -487,7 +487,7 @@ void GameStateShop::Update(float dt) menu->Add(22, _("Ask about...").c_str()); menu->Add(14, _("Check task board").c_str()); if (options[Options::CHEATMODE].number) - menu->Add(-2, _("Steal 1,000 credits").c_str()); + menu->Add(-2, _("Steal 2,000 credits").c_str()); menu->Add(12, _("Save And Exit").c_str()); menu->Add(kCancelMenuID, _("Cancel").c_str()); } @@ -860,7 +860,7 @@ void GameStateShop::ButtonPressed(int controllerId, int controlId) beginFilters(); break; case -2: - playerdata->credits += 1000; + playerdata->credits += 2000; default: mStage = STAGE_SHOP_SHOP; } From 178fcb97175e1251755a524f5af3868170b389e1 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Sun, 26 Feb 2017 09:38:11 +0800 Subject: [PATCH 2/6] update some cycled cards --- projects/mtg/bin/Res/sets/primitives/mtg.txt | 156 ++++++++++++------- projects/mtg/src/MTGAbility.cpp | 13 ++ 2 files changed, 111 insertions(+), 58 deletions(-) diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index ad2e10603..f3f4fce03 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -8970,8 +8970,8 @@ type=Land [card] name=Bant Sojourners auto=@movedTo(this|graveyard) from(battlefield):may token(Soldier,Creature Soldier,1/1,white) -autohand=__CYCLING__({2}{W}) -autohand={2}{W}{cycle}:name(cycle + effect) token(Soldier,Creature Soldier,1/1,white) && draw:1 controller +autohand={2}{W}{cycle}:name(cycling) draw:1 controller +autohand=@cycled(this|hand):may token(Soldier,Creature Soldier,1/1,white) text=When you cycle Bant Sojourners or it's put into a graveyard from the battlefield, you may put a 1/1 white Soldier creature token onto the battlefield. -- Cycling {2}{W} ({2}{W}, Discard this card: Draw a card.) mana={1}{G}{W}{U} type=Creature @@ -19520,7 +19520,8 @@ type=Sorcery name=Choking Tethers target=creature auto=tap -autohand={1}{U}{cycle}:name(cycling) transforms((,newability[draw:1],newability[may tap target(creature)])) forever +autohand={1}{U}{cycle}:name(cycling) draw:1 +autohand=@cycled(this|hand):may tap target(creature) text=Tap up to four target creatures. -- Cycling {1}{U} ({1}{U}, Discard this card: Draw a card.) -- When you cycle Choking Tethers, you may tap target creature. mana={3}{U} type=Instant @@ -26943,7 +26944,8 @@ type=Enchantment name=Death Pulse target=creature auto=-4/-4 -autohand={1}{B}{B}{cycle}:name(cycling) transforms((,newability[draw:1],newability[may -1/-1 target(creature)])) forever +autohand={1}{B}{B}{cycle}:name(cycling) draw:1 +autohand=@cycled(this|hand):may -1/-1 target(creature) text=Target creature gets -4/-4 until end of turn. -- Cycling {1}{B}{B} ({1}{B}{B}, Discard this card: Draw a card.) -- When you cycle Death Pulse, you may have target creature get -1/-1 until end of turn. mana={2}{B}{B} type=Instant @@ -27471,12 +27473,9 @@ type=Sorcery [/card] [card] name=Decree of Annihilation -auto=moveTo(exile) all(artifact,creature,land|battlefield) -auto=moveTo(exile) all(*|mygraveyard) -auto=moveTo(exile) all(*|opponentgraveyard) -auto=moveTo(exile) all(*|myhand) -auto=moveTo(exile) all(*|opponenthand) -autohand={5}{R}{R}{cycle}:name(cycling) destroy all(land) && draw:1 controller +auto=moveTo(exile) all(artifact,creature,land|battlefield) && moveTo(exile) all(*|graveyard) && moveTo(exile) all(*|hand) +autohand={5}{R}{R}{cycle}:name(cycling) draw:1 controller +autohand=@cycled(this|hand):destroy all(land) text=Exile all artifacts, creatures, and lands from the battlefield, all cards from all graveyards, and all cards from all hands. -- Cycling {5}{R}{R} ({5}{R}{R}, Discard this card: Draw a card.) -- When you cycle Decree of Annihilation, destroy all lands. mana={8}{R}{R} type=Sorcery @@ -27494,7 +27493,8 @@ type=Sorcery name=Decree of Pain auto=@movedto(graveyard) from(creature|battlefield):draw:1 auto=all(creature) bury -autohand={3}{B}{B}{cycle}:lord(creature) -2/-2 ueot +autohand={3}{B}{B}{cycle}:name(cycling) draw:1 +autohand=@cycled(this|hand):lord(creature) -2/-2 ueot text=Destroy all creatures. They can't be regenerated. Draw a card for each creature destroyed this way. -- Cycling {3}{B}{B} ({3}{B}{B}, Discard this card: Draw a card.) -- When you cycle Decree of Pain, all creatures get -2/-2 until end of turn. mana={6}{B}{B} type=Sorcery @@ -27502,8 +27502,8 @@ type=Sorcery [card] name=Decree of Savagery auto=lord(creature|myBattlefield) counter(1/1,4) -autohand=__CYCLING__({4}{G}{G}) -autohand={4}{G}{G}{cycle}:name(cycling + four counters) counter(1/1,4) target(creature) && draw:1 controller +autohand={4}{G}{G}{cycle}:name(cycling) draw:1 controller +autohand=@cycled(this|hand):may counter(1/1,4) target(creature) text=Put four +1/+1 counters on each creature you control. -- Cycling {4}{G}{G} ({4}{G}{G}, Discard this card: Draw a card.) -- When you cycle Decree of Savagery, you may put four +1/+1 counters on target creature. mana={7}{G}{G} type=Instant @@ -27512,7 +27512,8 @@ type=Instant name=Decree of Silence auto=@movedto(*|opponentstack):all(trigger[to]) transforms((,newability[fizzle])) forever && counter(0/0,1,Depletion) all(this) auto=this(counter{0/0.1.Depletion}>2)while sacrifice -autohand={4}{U}{U}{cycle}:name(cycling) draw:1 && transforms((,newability[may target(*|stack) fizzle])) forever +autohand={4}{U}{U}{cycle}:name(cycling) draw:1 +autohand=@cycled(this|hand):may target(*|stack) fizzle text=Whenever an opponent casts a spell, counter that spell and put a depletion counter on Decree of Silence. If there are three or more depletion counters on Decree of Silence, sacrifice it. -- Cycling {4}{U}{U} ({4}{U}{U}, Discard this card: Draw a card.) -- When you cycle Decree of Silence, you may counter target spell. mana={6}{U}{U} type=Enchantment @@ -29553,7 +29554,8 @@ toughness=2 [card] name=Dirge of Dread auto=lord(creature) fear -autohand={1}{B}{cycle}:name(cycling) transforms((,newability[draw:1],newability[may fear target(creature)])) forever +autohand={1}{B}{cycle}:name(cycling) draw:1 +autohand=@cycled(this|hand):may fear target(creature) text=All creatures gain fear until end of turn. (They can't be blocked except by artifact creatures and/or black creatures.) -- Cycling {1}{B} ({1}{B}, Discard this card: Draw a card.) -- When you cycle Dirge of Dread, you may have target creature gain fear until end of turn. mana={2}{B} type=Sorcery @@ -32495,7 +32497,7 @@ toughness=3 name=Druidic Satchel mana={3} type=Artifact -auto={2}{t}::reveal:1 optionone name(Use Satchel) transforms((,newability[all(creature|reveal) create(Saproling:Creature Saproling:1/1:green) controller],newability[all(land|reveal) moveto(mybattlefield)] ,newability[all(-land,-creature|reveal) life:2 controller])) forever optiononeend optiontwo name(Place back on top) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend +auto={2}{t}:reveal:1 optionone name(Use Satchel) transforms((,newability[all(creature|reveal) create(Saproling:Creature Saproling:1/1:green) controller],newability[all(land|reveal) moveto(mybattlefield)] ,newability[all(-land,-creature|reveal) life:2 controller])) forever optiononeend optiontwo name(Place back on top) target(<1>*|reveal) moveto(mylibrary) optiontwoend revealend text={2}, {T}: Reveal the top card of your library. If it's a creature card, put a 1/1 green Saproling creature token onto the battlefield. If it's a land card, put that card onto the battlefield under your control. If it's a noncreature, nonland card, you gain 2 life. [/card] [card] @@ -36750,7 +36752,8 @@ type=Land [card] name=Esper Sojourners auto=@movedTo(this|graveyard) from(battlefield):all(trigger[to]) transforms((,newability[may tap target(*)],newability[may untap target(*)])) forever -autohand={2}{U}{cycle}:name(cycling) draw:1 && transforms((,newability[may tap target(*)],newability[may untap target(*)])) forever +autohand={2}{U}{cycle}:name(cycling) draw:1 +autohand=@cycled(this|hand):name(tap or untap) transforms((,newability[may tap target(*)],newability[may untap target(*)])) forever text=When you cycle Esper Sojourners or it's put into a graveyard from the battlefield, you may tap or untap target permanent. -- Cycling {2}{U} ({2}{U}, Discard this card: Draw a card.) mana={W}{U}{B} type=Artifact Creature @@ -40525,7 +40528,7 @@ subtype=Aura name=Firedrinker Satyr auto=@damaged(this):damage:thatmuch controller auto={1}{R}:1/0 ueot && damage:1 controller -text=Whenever Firedrinker Satyr is dealt damage, it deals that much damage to you. -- {1}{R}:: Firedrinker Satyr gets +1/+0 until end of turn and deals 1 damage to you. +text=Whenever Firedrinker Satyr is dealt damage, it deals that much damage to you. -- {1}{R}: Firedrinker Satyr gets +1/+0 until end of turn and deals 1 damage to you. mana={R} type=Creature subtype=Satyr Shaman @@ -44964,7 +44967,8 @@ toughness=4 [/card] [card] name=Gempalm Avenger -autohand={2}{W}{cycle}:name(cycling) all(soldier|mybattlefield) 1/1 && all(soldier|myBattlefield) first strike && draw:1 controller +autohand={2}{W}{cycle}:name(cycling) draw:1 controller +autohand=@cycled(this|hand):lord(soldier|battlefield) 1/1 ueot && lord(soldier|battlefield) first strike ueot text=Cycling {2}{W} ({2}{W}, Discard this card: Draw a card.) -- When you cycle Gempalm Avenger, Soldier creatures get +1/+1 and gain first strike until end of turn. mana={5}{W} type=Creature @@ -44974,7 +44978,8 @@ toughness=5 [/card] [card] name=Gempalm Incinerator -autohand={1}{R}{cycle}:name(cycling) transforms((,newability[draw:1],newability[may damage:type:goblin:mybattlefield target(creature)])) forever +autohand={1}{R}{cycle}:name(cycling) draw:1 +autohand=@cycled(this|hand):may damage:type:goblin:mybattlefield target(creature) text=Cycling {1}{R} ({1}{R}, Discard this card: Draw a card.) -- When you cycle Gempalm Incinerator, you may have it deal X damage to target creature, where X is the number of Goblins on the battlefield. mana={2}{R} type=Creature @@ -44984,7 +44989,8 @@ toughness=1 [/card] [card] name=Gempalm Polluter -autohand={B}{B}{cycle}:name(cycling) transforms((,newability[draw:1],newability[may life:-type:zombie:battlefield target(player)])) forever +autohand={B}{B}{cycle}:name(cycling) draw:1 +autohand=@cycled(this|hand):may life:-type:zombie:battlefield target(player) text=Cycling {B}{B} ({B}{B}, Discard this card: Draw a card.) -- When you cycle Gempalm Polluter, you may have target player lose 1 life for each Zombie on the battlefield. mana={5}{B} type=Creature @@ -44994,7 +45000,8 @@ toughness=3 [/card] [card] name=Gempalm Sorcerer -autohand={2}{U}{cycle}:name(cycling) lord(creature[wizard]) flying && draw:1 controller +autohand={2}{U}{cycle}:name(cycling) draw:1 controller +autohand=@cycled(this|hand):lord(creature[wizard]) flying ueot text=Cycling {2}{U} ({2}{U}, Discard this card: Draw a card.) -- When you cycle Gempalm Sorcerer, Wizard creatures gain flying until end of turn. mana={2}{U} type=Creature @@ -45004,7 +45011,8 @@ toughness=2 [/card] [card] name=Gempalm Strider -autohand={2}{G}{G}{cycle}:name(cycling) lord(creature[elf]) 2/2 && draw:1 controller +autohand={2}{G}{G}{cycle}:name(cycling) draw:1 controller +autohand=@cycled(this|hand):lord(creature[elf]) 2/2 ueot text=Cycling {2}{G}{G} ({2}{G}{G}, Discard this card: Draw a card.) -- When you cycle Gempalm Strider, Elf creatures get +2/+2 until end of turn. mana={1}{G} type=Creature @@ -50450,7 +50458,8 @@ toughness=4 [card] name=Grixis Sojourners auto=@movedTo(this|graveyard) from(battlefield):may moveTo(exile) target(*|graveyard) -autohand={2}{B}{cycle}:name(cycling) transforms((,newability[draw:1],newability[may moveTo(exile) target(*|graveyard)])) forever +autohand={2}{B}{cycle}:name(cycling) draw:1 +autohand=@cycled(this|hand):may moveTo(exile) target(*|graveyard) text=When you cycle Grixis Sojourners or it's put into a graveyard from the battlefield, you may exile target card from a graveyard. -- Cycling {2}{B} ({2}{B}, Discard this card: Draw a card.) mana={1}{U}{B}{R} type=Creature @@ -52300,7 +52309,7 @@ toughness=4 [/card] [card] name=Harvest Hand -auto=@movedTo(this|graveyard)::all(trigger[to]) transforms((,newability[flip(Scrounged Scythe)],newability[moveto(mybattlefield)])) forever +auto=@movedTo(this|graveyard):all(trigger[to]) transforms((,newability[flip(Scrounged Scythe)],newability[moveto(mybattlefield)])) forever text=When Harvest Hand dies, return it to the battlefield transformed under your control. mana={3} type=Artifact Creature @@ -60492,7 +60501,8 @@ type=Land [card] name=Jund Sojourners auto=@movedTo(this|graveyard) from(battlefield):may damage:1 target(creature,player) -autohand={2}{R}{cycle}:name(cycling) transforms((,newability[draw:1],newability[may damage:1 target(*[creature;player])])) forever +autohand={2}{R}{cycle}:name(cycling) draw:1 +autohand=@cycled(this|hand):may damage:1 target(*[creature;player]) text=When you cycle Jund Sojourners or it's put into a graveyard from the battlefield, you may have it deal 1 damage to target creature or player. -- Cycling {2}{R} ({2}{R}, Discard this card: Draw a card.) mana={B}{R}{G} type=Creature @@ -64376,7 +64386,9 @@ toughness=2 [/card] [card] name=Krosan Tusker -autohand={2}{G}{cycle}:name(cycling) transforms((,newability[draw:1],newability[may moveTo(myhand) target(land[basic]|myLibrary)])) forever +aicode=activate target(land[basic]|mylibrary) moveto(myhand) +autohand=@cycled(this|hand):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 +autohand={2}{G}{cycle}:name(cycling) draw:1 text=Cycling {2}{G} ({2}{G}, Discard this card: Draw a card.) -- When you cycle Krosan Tusker, you may search your library for a basic land card, reveal that card, put it into your hand, then shuffle your library. mana={5}{G}{G} type=Creature @@ -64593,7 +64605,8 @@ toughness=3 [/card] [card] name=Kuldotha Forgemaster -auto={T}{S(artifact|myBattlefield)}{S(artifact|myBattlefield)}{S(artifact|myBattlefield)}:moveTo(myBattlefield) target(artifact|mylibrary) +aicode=activate moveTo(myBattlefield) target(artifact|myLibrary) +auto={T}{S(artifact|myBattlefield)}{S(artifact|myBattlefield)}{S(artifact|myBattlefield)}:name(search card) reveal:plibrarycount optionone name(choose card) target(artifact|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={T}, Sacrifice three artifacts: Search your library for an artifact card and put it onto the battlefield. Then shuffle your library. mana={5} type=Artifact Creature @@ -64805,7 +64818,8 @@ type=Artifact name=Kyscu Drake abilities=flying auto={G}:0/1 limit:1 -auto={S}{S(spitting drake|myBattlefield)}:moveTo(myBattlefield) target(viashivan dragon|mylibrary) +aicode=activate moveTo(myBattlefield) target(viashivan dragon|myLibrary) +auto={S(kyscu drake|myBattlefield)}{S(spitting drake|myBattlefield)}:name(search card) reveal:plibrarycount optionone name(choose card) target(viashivan 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(myBattlefield))! afterrevealedend revealend text=Flying -- {G}: Kyscu Drake gets +0/+1 until end of turn. Activate this ability only once each turn. -- Sacrifice Kyscu Drake and a creature named Spitting Drake: Search your library for a card named Viashivan Dragon and put that card onto the battlefield. Then shuffle your library. mana={3}{G} type=Creature @@ -65093,7 +65107,8 @@ type=Enchantment [card] name=Land Grant other={0} name(Cast for free) -auto=moveto(myhand) notatarget(forest|mylibrary) +aicode=activate target(forest|mylibrary) moveto(myhand) +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>forest|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 otherrestriction=type(land|myhand)~lessthan~1 autostack=if paid(alternative) then ability$!name(look at opponent hand) notatarget(*|opponenthand) 0/0!$ opponent text=If you have no land cards in hand, you may reveal your hand rather than pay Land Grant's mana cost. -- Search your library for a Forest card, reveal that card, and put it into your hand. Then shuffle your library. @@ -65118,7 +65133,8 @@ type=Artifact [/card] [card] name=Land Tax -auto=@each my upkeep:if type(land|opponentbattlefield)~morethan~type(land|mybattlefield) then may transforms((,newability[moveTo(myhand) target(land[basic]|mylibrary)])) ueot +aicode=activate target(land[basic]|mylibrary) moveto(myhand) +auto=@each my upkeep restriction{control less lands}:name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(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=At the beginning of your upkeep, if an opponent controls more lands than you, you may search your library for up to three basic land cards, reveal them, and put them into your hand. If you do, shuffle your library. mana={W} type=Enchantment @@ -65660,7 +65676,8 @@ type=Instant [/card] [card] name=Lay of the Land -auto=moveTo(myHand) notatarget(land[basic]|myLibrary) +aicode=activate target(land[basic]|mylibrary) moveto(myhand) +auto=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=Search your library for a basic land card, reveal that card, and put it into your hand. Then shuffle your library. mana={G} type=Sorcery @@ -66549,7 +66566,8 @@ subtype=Aura [card] name=Life's Finale auto=destroy all(creature) -auto=target(creature|opponentlibrary) moveTo(ownergraveyard) +aicode=activate moveto(ownergraveyard) target(creature|targetedpersonslibrary) +auto=name(target opponent) target(opponent) reveal:type:*:targetedpersonslibrary revealzone(targetedpersonslibrary) optionone name(choose card) target(creature|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) and!(shuffle)! )! optiontwoend revealend text=Destroy all creatures, then search target opponent's library for up to three creature cards and put them into his or her graveyard. Then that player shuffles his or her library. mana={4}{B}{B} type=Sorcery @@ -66581,7 +66599,8 @@ type=Artifact [/card] [card] name=Lifespinner -auto={S(spirit|myBattlefield)}{S(spirit|myBattlefield)}{S(spirit|myBattlefield)}{T}:moveTo(mybattlefield) target(spirit[legendary]|mylibrary) +aicode=activate moveTo(myBattlefield) target(spirit[legendary]|myLibrary) +auto={S(spirit|myBattlefield)}{S(spirit|myBattlefield)}{S(spirit|myBattlefield)}{T}:name(search card) reveal:plibrarycount optionone name(choose card) target(spirit[legendary]|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!(activate castcard(putinplay))! afterrevealedend revealend text={T}, Sacrifice three Spirits: Search your library for a legendary Spirit permanent card and put it onto the battlefield. Then shuffle your library. mana={3}{G} type=Creature @@ -66957,7 +66976,8 @@ toughness=4 [card] name=Liliana of the Dark Realms auto=counter(0/0,3,loyalty) -auto={C(0/0,1,Loyalty)}:name(+1: fetch) moveTo(hand) target(swamp|myLibrary) +aicode=activate target(swamp|mylibrary) moveto(myhand) +auto={C(0/0,1,Loyalty)}:name(+1: fetch) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>swamp|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 auto={C(0/0,-3,Loyalty)}:name(-3: choose) ability$!choice name(+X/+X) target(creature) type:land:mybattlefield/type:land:mybattlefield ueot _ choice name(-X/-X) target(creature) -type:land:mybattlefield/-type:land:mybattlefield ueot!$ controller auto={C(0/0,-6,Loyalty)}:name(-6: emblem) emblem transforms((,newability[lord(swamp|mybattlefield) {T}:add{B}{B}{B}{B}])) forever dontremove text=+1: Search your library for a Swamp card, reveal it, and put it into your hand. Then shuffle your library. -- -3: Target creature gets +X/+X or -X/-X until end of turn, where X is the number of Swamps you control. -- -6: You get an emblem with "Swamps you control have '{T}: Add {B}{B}{B}{B} to your mana pool.'" @@ -66967,9 +66987,11 @@ subtype=Liliana [/card] [card] name=Liliana Vess +abilities=hiddenface auto=counter(0/0,5,loyalty) +aicode=activate moveto(mylibrary) and!(moveto(mylibrary))! target(*|mylibrary) auto={C(0/0,1,Loyalty)}:name(+1: discard) target(player) ability$!name(discard) target(*|myhand) reject!$ targetedplayer -auto={C(0/0,-2,Loyalty)}:name(-2: fetch) moveTo(exile) and!(transforms((,newability[moveto(ownerlibrary)])) oneshot)! notatarget(*|mylibrary) +auto={C(0/0,-2,Loyalty)}:name(-2: fetch) reveal:plibrarycount optionone name(choose card) target(*|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(mylibrary) and!(moveto(mylibrary))! afterrevealedend revealend auto={C(0/0,-8,Loyalty)}:name(-8: reanimate) moveTo(mybattlefield) all(creature|graveyard) text=+1: Target player discards a card. -- -2: Search your library for a card, then shuffle your library and put that card on top of it. -- -8: Put all creature cards in all graveyards onto the battlefield under your control. mana={3}{B}{B} @@ -67069,7 +67091,8 @@ toughness=3 [/card] [card] name=Liliana's Shade -auto=name(fetch) may moveTo(myhand) target(swamp|mylibrary) +aicode=activate target(swamp|mylibrary) moveto(myhand) +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>swamp|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 auto={B}:1/1 text=When Liliana's Shade enters the battlefield, you may search your library for a Swamp card, reveal it, put it into your hand, then shuffle your library. -- {B}: Liliana's Shade gets +1/+1 until end of turn. mana={2}{B}{B} @@ -67542,7 +67565,8 @@ type=Land [/card] [card] name=Llanowar Sentinel -auto=pay({1}{G}) name(search for Llanowar Sentinel) target(Llanowar Sentinel|mylibrary) moveto(mybattlefield) +aicode=activate moveTo(myBattlefield) target(Llanowar Sentinel|myLibrary) +auto=pay({1}{G}) name(search card) reveal:plibrarycount optionone name(choose card) target(Llanowar Sentinel|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=When Llanowar Sentinel enters the battlefield, you may pay {1}{G}. If you do, search your library for a card named Llanowar Sentinel and put that card onto the battlefield. Then shuffle your library. mana={2}{G} type=Creature @@ -70053,7 +70077,8 @@ type=Sorcery [/card] [card] name=Mana Severance -auto=notatarget(land|mylibrary) moveTo(exile) +aicode=activate target(land|mylibrary) moveto(exile) +auto=name(exile cards) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose cards) target(land|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(exile)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend text=Search your library for any number of land cards and exile them. Then shuffle your library. mana={1}{U} type=Sorcery @@ -70280,7 +70305,8 @@ toughness=2 [/card] [card] name=Manipulate Fate -auto=moveTo(exile) notatarget(<3>*|mylibrary) +aicode=activate target(<3>*|mylibrary) moveto(exile) +auto=name(exile cards) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose cards) target(<3>*|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(exile)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend auto=draw:1 controller text=Search your library for three cards, exile them, then shuffle your library. -- Draw a card. mana={1}{U} @@ -70403,7 +70429,8 @@ subtype=Aura [/card] [card] name=Map the Wastes -auto=moveTo(myBattlefield) and!(tap(noevent))! notatarget(land[basic]|myLibrary) +aicode=activate moveTo(myBattlefield) and!(tap(noevent))! 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) and!(tap(noevent))!)! afterrevealedend revealend auto=ability$!name(Bolster) notatarget(creature[toughness=toughness:lowest:creature:mybattlefield]|mybattlefield) counter(1/1,1)!$ controller text=Search your library for a basic land card and put that card onto the battlefield tapped. Then shuffle your library. -- Bolster 1. (Choose a creature with the least toughness among creatures you control and put a +1/+1 counter on it.) mana={2}{G} @@ -71003,7 +71030,8 @@ toughness=4 [/card] [card] name=Marsh Flats -auto={L}{T}{S}:moveTo(myBattlefield) target(plains,swamp|mylibrary) +aicode=activate moveTo(myBattlefield) target(*[swamp;plains]|myLibrary) +auto={L}{T}{S}:name(search card) reveal:plibrarycount optionone name(choose card) target(*[swamp;plains]|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 Marsh Flats: Search your library for a Plains or Swamp card and put it onto the battlefield. Then shuffle your library. type=Land [/card] @@ -72339,7 +72367,8 @@ toughness=1 [/card] [card] name=Merchant Scroll -auto=moveTo(myhand) notatarget(instant[blue]|mylibrary) +aicode=activate target(instant[blue]|mylibrary) moveto(myhand) +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>instant[blue]|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 blue instant card, reveal that card, and put it into your hand. Then shuffle your library. mana={1}{U} type=Sorcery @@ -72634,7 +72663,7 @@ toughness=2 name=Merrow Harbinger abilities=islandwalk aicode=activate target(merfolk|mylibrary) moveto(mylibrary) and!(moveto(mylibrary))! -auto=Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(merfolk|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mylibrary)])) optiononeend optiontwo bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(merfolk|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mylibrary)])) optiononeend optiontwo bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend text=Islandwalk -- When Merrow Harbinger enters the battlefield, you may search your library for a Merfolk card, reveal it, then shuffle your library and put that card on top of it. mana={3}{U} type=Creature @@ -78123,7 +78152,8 @@ type=Land [card] name=Naya Sojourners auto=@movedTo(this|graveyard) from(battlefield):may counter(1/1,1) target(creature) -autohand={2}{G}{cycle}:name(cycling) transforms((,newability[draw:1],newability[may counter(1/1.1) target(creature)])) forever +autohand={2}{G}{cycle}:name(cycling) draw:1 +autohand=@cycled(this|hand):may counter(1/1,1) target(creature) text=When you cycle Naya Sojourners or it's put into a graveyard from the battlefield, you may put a +1/+1 counter on target creature. -- Cycling {2}{G} ({2}{G}, Discard this card: Draw a card.) mana={2}{R}{G}{W} type=Creature @@ -87903,7 +87933,7 @@ type=Instant name=Preyseizer Dragon abilities=flying auto=may target(other creature|mybattlefield) sacrifice && counter(1/1,2) all(this) -auto=@combat(attacking) source(this)::target(creature,player) dynamicability +auto=@combat(attacking) source(this):target(creature,player) dynamicability text=Flying -- Devour 2 (As this enters the battlefield, you may sacrifice any number of creatures. This creature enters the battlefield with twice that many +1/+1 counters on it.) -- Whenever Preyseizer Dragon attacks, it deals damage to target creature or player equal to the number of +1/+1 counters on Preyseizer Dragon. mana={4}{R}{R} type=Creature @@ -88071,7 +88101,8 @@ type=Instant name=Primal Boost target=creature auto=4/4 -autohand={2}{G}{cycle}:name(cycling) transforms((,newability[draw:1],newability[may 1/1 target(creature)])) forever +autohand={2}{G}{cycle}:name(cycling) draw:1 +autohand=@cycled(this|hand):may 1/1 target(creature) ueot text=Target creature gets +4/+4 until end of turn. -- Cycling {2}{G} ({2}{G}, Discard this card: Draw a card.) -- When you cycle Primal Boost, you may have target creature get +1/+1 until end of turn. mana={2}{G} type=Instant @@ -93539,7 +93570,8 @@ type=Sorcery [card] name=Renewed Faith auto=life:6 -autohand={1}{W}{cycle}:name(cycling) transforms((,newability[draw:1],newability[may life:2])) forever +autohand={1}{W}{cycle}:name(cycling) draw:1 +autohand=@cycled(this|hand):may life:2 text=You gain 6 life. -- Cycling {1}{W} ({1}{W}, Discard this card: Draw a card.) -- When you cycle Renewed Faith, you may gain 2 life. mana={2}{W} type=Instant @@ -93836,7 +93868,8 @@ toughness=2 name=Resounding Roar target=creature auto=3/3 -autohand={5}{R}{G}{W}{cycle}:name(cycling and six damage to creature) draw:1 && transforms((,newability[target(creature) 6/6])) forever +autohand={5}{R}{G}{W}{cycle}:name(cycling) draw:1 +autohand=@cycled(this|hand):target(creature) 6/6 ueot text=Target creature gets +3/+3 until end of turn. -- Cycling {5}{R}{G}{W} ({5}{R}{G}{W}, Discard this card: Draw a card.) -- When you cycle Resounding Roar, target creature gets +6/+6 until end of turn. mana={1}{G} type=Instant @@ -93845,7 +93878,8 @@ type=Instant name=Resounding Scream target=player auto=discard:1 -autohand={5}{U}{B}{R}{cycle}:name(cycling) draw:1 controller && discard:2 opponent +autohand={5}{U}{B}{R}{cycle}:name(cycling) draw:1 +autohand=@cycled(this|hand):target(player) discard:2 text=Target player discards a card at random. -- Cycling {5}{U}{B}{R} ({5}{U}{B}{R}, Discard this card: Draw a card.) -- When you cycle Resounding Scream, target player discards two cards at random. mana={2}{B} type=Sorcery @@ -93854,7 +93888,8 @@ type=Sorcery name=Resounding Silence target=creature[attacking] auto=moveTo(exile) -autohand={5}{G}{W}{U}{cycle}:name(cycling and exile) draw:1 && transforms((,newability[target(creature) moveTo(exile)])) forever +autohand={5}{G}{W}{U}{cycle}:name(cycling) draw:1 +autohand=@cycled(this|hand):target(creature[attacking]) moveTo(exile) text=Exile target attacking creature. -- Cycling {5}{G}{W}{U} ({5}{G}{W}{U}, Discard this card: Draw a card.) -- When you cycle Resounding Silence, exile up to two target attacking creatures. mana={3}{W} type=Instant @@ -93863,8 +93898,8 @@ type=Instant name=Resounding Thunder target=creature,player auto=damage:3 -autohand={5}{B}{R}{G}{cycle}:name(cycling and six damage to target creature) draw:1 controller && transforms((,newability[target(creature) damage:6])) forever -autohand={5}{B}{R}{G}{cycle}:name(cycling and six damage to target player) draw:1 controller && transforms((,newability[target(player) damage:6])) forever +autohand={5}{B}{R}{G}{cycle}:name(cycling) draw:1 +autohand=@cycled(this|hand):target(*[creature;player]) damage:6 text=Resounding Thunder deals 3 damage to target creature or player. -- Cycling {5}{B}{R}{G} ({5}{B}{R}{G}, Discard this card: Draw a card.) -- When you cycle Resounding Thunder, it deals 6 damage to target creature or player. mana={2}{R} type=Instant @@ -93873,7 +93908,8 @@ type=Instant name=Resounding Wave target=* auto=moveTo(ownerhand) -autohand={5}{W}{U}{B}{cycle}:name(cycling and exile) draw:1 && transforms((,newability[target(*) moveTo(ownerhand)])) forever +autohand={5}{W}{U}{B}{cycle}:name(cycling) draw:1 +autohand=@cycled(this|hand):target(<2>*) moveTo(ownerhand) text=Return target permanent to its owner's hand. -- Cycling {5}{W}{U}{B} ({5}{W}{U}{B}, Discard this card: Draw a card.) -- When you cycle Resounding Wave, return two target permanents to their owners' hands. mana={2}{U} type=Instant @@ -107408,7 +107444,8 @@ type=Sorcery [card] name=Slice and Dice auto=damage:4 all(creature) -autohand={2}{R}{cycle}:name(cycling) transforms((,newability[draw:1],newability[may damage:1 all(creature)])) forever +autohand={2}{R}{cycle}:name(cycling) draw:1 +autohand=@cycled(this|hand):may damage:1 all(creature) text=Slice and Dice deals 4 damage to each creature. -- Cycling {2}{R} ({2}{R}, Discard this card: Draw a card.) -- When you cycle Slice and Dice, you may have it deal 1 damage to each creature. mana={4}{R}{R} type=Sorcery @@ -108384,7 +108421,8 @@ type=Artifact name=Solar Blast target=creature,player auto=damage:3 -autohand={1}{R}{R}{cycle}:name(cycling) transforms((,newability[draw:1],newability[may damage:1 target(*[creature;player])])) forever +autohand={1}{R}{R}{cycle}:name(cycling) draw:1 +autohand=@cycled(this|hand):may damage:1 target(*[creature;player]) text=Solar Blast deals 3 damage to target creature or player. -- Cycling {1}{R}{R} ({1}{R}{R}, Discard this card: Draw a card.) -- When you cycle Solar Blast, you may have it deal 1 damage to target creature or player. mana={3}{R} type=Instant @@ -111756,7 +111794,8 @@ toughness=2 [card] name=Squadron Hawk abilities=flying -auto=moveTo(myhand) target(squadron hawk|mylibrary) +aicode=activate target(squadron hawk|mylibrary) moveto(myhand) +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(squadron hawk|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 Squardon Hawk enters the battlefield, you may search your library for up to three cards named Squadron Hawk, reveal them, put them into your hand, then shuffle your library. mana={1}{W} type=Creature @@ -115100,7 +115139,8 @@ type=Instant name=Sunfire Balm target=creature,player auto=prevent:4 -autohand={1}{W}{cycle}:name(cycling) transforms((,newability[draw:1],newability[may prevent:1 target(*[creature;player])])) forever +autohand=@cycled(this|hand):may prevent:1 target(*[creature;player]) +autohand={1}{W}{cycle}:name(cycling) draw:1 text=Prevent the next 4 damage that would be dealt to target creature or player this turn. -- Cycling {1}{W} ({1}{W}, Discard this card: Draw a card.) -- When you cycle Sunfire Balm, you may prevent the next 1 damage that would be dealt to target creature or player this turn. mana={2}{W} type=Instant diff --git a/projects/mtg/src/MTGAbility.cpp b/projects/mtg/src/MTGAbility.cpp index 46f0767f5..d5172cfa2 100644 --- a/projects/mtg/src/MTGAbility.cpp +++ b/projects/mtg/src/MTGAbility.cpp @@ -5931,6 +5931,19 @@ int TriggeredAbility::receiveEvent(WEvent * e) resolve(); return 1; } + WEventCardCycle * cycleCheck = dynamic_cast(e); + if(cycleCheck && cycleCheck->card == source) + { + resolve(); + return 1; + //When you cycle this card, first the cycling ability goes on the stack, + //then the triggered ability goes on the stack on top of it. + //The triggered ability will resolve before you draw a card from the cycling ability. + // + //The cycling ability and the triggered ability are separate. + //If the triggered ability is countered (with Stifle, for example, or if all its targets have become illegal), + //the cycling ability will still resolve and you'll draw a card. + } WEventZoneChange * stackCheck = dynamic_cast(e); if(stackCheck && (stackCheck->to == game->currentPlayer->game->stack||stackCheck->to == game->currentPlayer->opponent()->game->stack)) { From 0f82b6efba00fc91289967079c729ca96795ac80 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Sun, 26 Feb 2017 15:22:16 +0800 Subject: [PATCH 3/6] crash fix mana ability filter --- projects/mtg/src/ManaCost.cpp | 2 ++ projects/mtg/src/WFilter.cpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/projects/mtg/src/ManaCost.cpp b/projects/mtg/src/ManaCost.cpp index 4c9b13da2..328e49577 100644 --- a/projects/mtg/src/ManaCost.cpp +++ b/projects/mtg/src/ManaCost.cpp @@ -39,6 +39,8 @@ ManaCost * ManaCost::parseManaCost(string s, ManaCost * _manaCost, MTGCardInstan string value = s.substr(start -1,end); if(value == "n{")//"restrictio n{m orbid} would read the n{m as {m} millcost return manaCost; + else if(value == "e{")//"variable{ test fix + return manaCost; } if (start == string::npos) { diff --git a/projects/mtg/src/WFilter.cpp b/projects/mtg/src/WFilter.cpp index 4d3f0b058..38f894dfc 100644 --- a/projects/mtg/src/WFilter.cpp +++ b/projects/mtg/src/WFilter.cpp @@ -272,7 +272,7 @@ bool WCFilterProducesColor::isMatch(MTGCard * c) //Retrieve non basic Mana abilities string s = c->data->magicText; - size_t t = s.find("add"); + size_t t = s.find("add{"); while (t != string::npos) { s = s.substr(t + 3); From 17b6996ae450f2e9864b99f296bdaba8ca2545df Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Sun, 26 Feb 2017 21:21:11 +0800 Subject: [PATCH 4/6] tokens cant buy and/or add tokens in deck editor and shop... also adjust filter menu --- projects/mtg/src/GameStateDeckViewer.cpp | 1 + projects/mtg/src/GameStateShop.cpp | 2 +- projects/mtg/src/WGui.cpp | 8 +++++--- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/projects/mtg/src/GameStateDeckViewer.cpp b/projects/mtg/src/GameStateDeckViewer.cpp index 733ff97a3..891ae15fd 100644 --- a/projects/mtg/src/GameStateDeckViewer.cpp +++ b/projects/mtg/src/GameStateDeckViewer.cpp @@ -235,6 +235,7 @@ void GameStateDeckViewer::End() void GameStateDeckViewer::addRemove(MTGCard * card) { if (!card) return; + if ((card->getRarity() == Constants::RARITY_T) || (card->getId() < 1)) return; if (mView->deck()->Remove(card, 1, (mView->deck() == myDeck))) { if (mView->deck() == myCollection) diff --git a/projects/mtg/src/GameStateShop.cpp b/projects/mtg/src/GameStateShop.cpp index 956ff7810..38a180a60 100644 --- a/projects/mtg/src/GameStateShop.cpp +++ b/projects/mtg/src/GameStateShop.cpp @@ -271,7 +271,7 @@ void GameStateShop::cancelBooster(int) void GameStateShop::purchaseCard(int controlId) { MTGCard * c = srcCards->getCard(controlId - BOOSTER_SLOTS); - if (!c || !c->data || playerdata->credits - mPrices[controlId] < 0) + if (!c || !c->data || playerdata->credits - mPrices[controlId] < 0 || (c && c->getRarity() != Constants::RARITY_T))//cant buy tokens.... return; myCollection->Add(c); int price = mPrices[controlId]; diff --git a/projects/mtg/src/WGui.cpp b/projects/mtg/src/WGui.cpp index edbf74ffd..5a0e83639 100644 --- a/projects/mtg/src/WGui.cpp +++ b/projects/mtg/src/WGui.cpp @@ -1770,12 +1770,14 @@ void WGuiFilters::buildList() { list = NEW WGuiList(""); WGuiButton * l = NEW WGuiButton(NEW WGuiItem("Add Filter"), -102, -10, this); - WGuiButton * r = NEW WGuiButton(NEW WGuiItem("Done"), -102, -11, this); + WGuiButton * r = NEW WGuiButton(NEW WGuiItem("Search"), -102, -11, this); WGuiButton * mid = NEW WGuiButton(NEW WGuiItem("Clear"), -102, -66, this); - WGuiSplit * sub = NEW WGuiSplit(mid, r); - WGuiSplit * wgs = NEW WGuiSplit(l, sub); + //WGuiSplit * sub = NEW WGuiSplit(mid, r); + //WGuiSplit * wgs = NEW WGuiSplit(l, sub); + WGuiSplit * wgs = NEW WGuiSplit(mid, r); subMenu = NULL; list->Add(NEW WGuiHeader(displayValue)); + list->Add(l); list->Add(wgs); list->Entering(JGE_BTN_NONE); } From 2da2272a538ee75d2b5af15f7863311afdea5216 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Sun, 26 Feb 2017 23:13:45 +0800 Subject: [PATCH 5/6] update some cards --- projects/mtg/bin/Res/sets/primitives/mtg.txt | 290 ++++++++++++------- 1 file changed, 185 insertions(+), 105 deletions(-) diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index f3f4fce03..199021c66 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -945,6 +945,7 @@ type=Instant [/card] [card] name=Advice from the Fae +abilities=hiddenface aicode=activate transforms((,newability[if type(creature|mybattlefield)~morethan~type(creature|opponentbattlefield) then name(Pick 2) target(<2>*[zpos<=5]|mylibrary) moveto(myhand) else name(pick 1) target(<1>*[zpos<=5]|mylibrary) moveto(myhand)])) ueot auto=name(look) reveal:5 optionone if type(creature|mybattlefield)~morethan~type(creature|opponentbattlefield) then name(Pick 2) target(<2>*|reveal) moveto(myhand) else name(pick 1) target(<1>*|reveal) moveto(myhand) optiononeend optiontwo name(Put On Bottom) target(<5>*|reveal) bottomoflibrary optiontwoend revealend text=({(2/u)} can be paid with any two mana or with {U}. This card's converted mana cost is 6.) -- Look at the top five cards of your library. If you control more creatures than each other player, put two of those cards into your hand. Otherwise, put one of them into your hand. Then put the rest on the bottom of your library in any order. @@ -4377,6 +4378,7 @@ toughness=0 [/card] [card] name=Anticipate +abilities=hiddenface aicode=activate target(*[zpos<=3]|mylibrary) moveto(myhand) auto=name(look) reveal:3 optionone name(Get a card) target(<1>*|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<3>*|reveal) bottomoflibrary optiontwoend revealend text=Look at the top three cards of your library. Put one of them into your hand and the rest on the bottom of your library in any order. @@ -15368,6 +15370,7 @@ toughness=1 [/card] [card] name=Browse +abilities=hiddenface aicode=activate transforms((,newability[moveto(myhand) all(*[zpos=1]|mylibrary) && ingest:4])) ueot auto={2}{u}{u}:name(look) reveal:5 optionone name(pick a card) target(<1>*|reveal) moveto(myhand) optiononeend optiontwo name(Put in exile) target(<5>*|reveal) moveto(myexile) optiontwoend revealend text={2}{U}{U}: Look at the top five cards of your library, put one of them into your hand, and exile the rest. @@ -23028,7 +23031,7 @@ toughness=1 name=Court Hussar aicode=activate transforms((,newability[moveto(myhand) all(*[zpos=1]|mylibrary) && bottomoflibrary all(*[zpos<=2]|mylibrary)])) ueot auto=name(look) reveal:3 optionone name(Get a card) target(<1>*|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<3>*|reveal) bottomoflibrary optiontwoend revealend -abilities=vigilance +abilities=vigilance,hiddenface text=Vigilance -- When Court Hussar enters the battlefield, look at the top three cards of your library, then put one of them into your hand and the rest on the bottom of your library in any order. -- When Court Hussar enters the battlefield, sacrifice it unless {W} was spent to cast it. auto=ifnot spent({w}) then sacrifice all(this) mana={2}{U} @@ -29192,6 +29195,7 @@ type=Sorcery [/card] [card] name=Diabolic Vision +abilities=hiddenface aicode=name(look) activate name(look) transforms((,newability[moverandom(*[zpos<=5]) from(mylibrary) to(myhand)])) ueot auto=name(look) reveal:5 optionone name(Get Card) target(<1>*|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<5>*|reveal) bottomoflibrary optiontwoend revealend text=Look at the top five cards of your library. Put one of them into your hand and the rest on top of your library in any order. @@ -31123,7 +31127,7 @@ toughness=5 [/card] [card] name=Dragonlord Ojutai -abilities=flying +abilities=flying,hiddenface auto=this(untapped) opponentshroud aicode=activate transforms((,newability[moveto(myhand) all(*[zpos=1]|mylibrary) && bottomoflibrary all(*[zpos<=2]|mylibrary)])) ueot auto=@combatdamaged(player) from(this):name(look) reveal:3 optionone name(Get a card) target(<1>*|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<3>*|reveal) bottomoflibrary optiontwoend revealend @@ -33561,9 +33565,10 @@ toughness=5 [/card] [card] name=Earwig Squad -auto=if paid(alternative) then transforms((,newability[choice name(target opponent) target(opponent) moveto(exile) target(<3>*|targetedpersonslibrary)])) other={2}{B} name(Prowl) otherrestriction=prowl +aicode=activate moveto(exile) target(<3>*|targetedpersonslibrary) +auto=if paid(alternative) then name(target opponent) target(opponent) reveal:type:*:targetedpersonslibrary revealzone(targetedpersonslibrary) optionone name(choose card) target(<3>*|reveal) moveto(exile) optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) and!(shuffle)! )! optiontwoend revealend text=Prowl {2}{B} (You may cast this for its prowl cost if you dealt combat damage to a player this turn with a Goblin or Rogue.) -- When Earwig Squad enters the battlefield, if its prowl cost was paid, search target opponent's library for three cards and exile them. Then that player shuffles his or her library. mana={3}{B}{B} type=Creature @@ -33813,7 +33818,8 @@ toughness=2 [/card] [card] name=Edge of Autumn -auto=if type(land|mybattlefield)~lessthan~5 then target(land[basic]|mylibrary) moveTo(mybattlefield) +aicode=activate moveTo(myBattlefield) and!(tap(noevent))! target(land[basic]|myLibrary) +auto=if type(land|mybattlefield)~lessthan~5 then 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 autohand={S(land|mybattlefield)}{cycle}:name(cycling) draw:1 text=If you control four or fewer lands, search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library. -- Cycling - Sacrifice a land. (Sacrifice a land, Discard this card: Draw a card.) mana={1}{G} @@ -33860,7 +33866,8 @@ type=Instant [/card] [card] name=Eerie Procession -auto=moveto(myhand) notatarget(arcane|mylibrary) +aicode=activate target(arcane|mylibrary) moveto(myhand) +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>arcane|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 an Arcane card, reveal that card, and put it into your hand. Then shuffle your library. mana={2}{U} type=Sorcery @@ -34015,7 +34022,8 @@ toughness=2 [/card] [card] name=Eladamri's Call -auto=moveTo(myHand) notatarget(creature|mylibrary) +aicode=activate target(creature|mylibrary) moveto(myhand) +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>creature|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 creature card, reveal that card, and put it into your hand. Then shuffle your library. mana={G}{W} type=Instant @@ -34226,7 +34234,8 @@ toughness=1 [/card] [card] name=Eldritch Evolution -auto=target(creature[manacost<=storedmanacostplus2plusend]|mylibrary) moveto(mybattlefield) +aicode=activate moveTo(myBattlefield) target(creature[manacost<=storedmanacostplus2plusend]|myLibrary) +auto=name(search card) reveal:plibrarycount optionone name(choose card) target(<1>creature[manacost<=storedmanacostplus2plusend]|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!(activate castcard(putinplay))! afterrevealedend revealend auto=all(this) moveto(exile) text=As an additional cost to cast Eldritch Evolution, sacrifice a creature. -- Search your library for a creature card with converted mana cost X or less, where X is 2 plus the sacrificed creature's converted mana cost. Put that card onto the battlefield, then shuffle your library. Exile Eldritch Evolution. mana={1}{G}{G}{s(creature|mybattlefield)} @@ -34464,7 +34473,8 @@ type=Land [/card] [card] name=Elfhame Sanctuary -auto=@each my upkeep:may moveTo(myhand) target(land[basic]|mylibrary) && nextphasealter(remove,draw,controller) +aicode=activate target(land[basic]|mylibrary) moveto(myhand) and!(nextphasealter(remove,draw,controller))! +auto=@each my upkeep:may name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>land[basic]|reveal) moveto(myhand) and!(nextphasealter(remove,draw,controller))! optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend text=At the beginning of your upkeep, you may search your library for a basic land card, reveal that card, and put it into your hand. If you do, you skip your draw step this turn and shuffle your library. mana={1}{G} type=Enchantment @@ -34738,7 +34748,8 @@ toughness=1 [card] name=Elvish Aberration auto={T}:add{G}{G}{G} -autohand={2}{cycle}:name(forestcycling) moveTo(myhand) target(forest|mylibrary) +aicode=activate target(forest|mylibrary) moveto(myhand) +autohand={2}{cycle}:name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>forest|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 {G}{G}{G} to your mana pool. -- Forestcycling {2} ({2}, Discard this card: Search your library for a Forest card, reveal it, and put it into your hand. Then shuffle your library.) mana={5}{G} type=Creature @@ -34861,7 +34872,7 @@ toughness=1 [card] name=Elvish Harbinger aicode=activate target(elf|mylibrary) moveto(mylibrary) and!(moveto(mylibrary))! -auto=Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(elf|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mylibrary)])) optiononeend optiontwo bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(elf|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mylibrary)])) optiononeend optiontwo bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend auto={T}:Add{G} auto={T}:Add{W} auto={T}:Add{U} @@ -35183,7 +35194,8 @@ toughness=2 [/card] [card] name=Embermage Goblin -auto=may moveTo(myhand) target(embermage goblin|mylibrary) +aicode=activate target(embermage goblin|mylibrary) moveto(myhand) +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>embermage goblin|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 auto={T}:damage:1 target(creature,player) text=When Embermage Goblin enters the battlefield, you may search your library for a card named Embermage Goblin, reveal it, and put it into your hand. If you do, shuffle your library. -- {T}: Embermage Goblin deals 1 damage to target creature or player. mana={3}{R} @@ -35269,7 +35281,8 @@ toughness=4 [/card] [card] name=Embodiment of Spring -auto={1}{G}{T}{S}:moveTo(myBattlefield) and!(tap(noevent))! target(basic|mylibrary) +aicode=activate moveTo(myBattlefield) and!(tap(noevent))! target(land[basic]|myLibrary) +auto={1}{G}{T}{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={1}{G}{T}:Sacrifice Embodiment of Spring: Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library. mana={U} type=Creature @@ -36052,7 +36065,7 @@ toughness=2 [card] name=Enlightened Tutor aicode=activate target(*[artifact;enchantment]|mylibrary) moveto(mylibrary) and!(moveto(mylibrary))! -auto=Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(*[artifact;enchantment]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mylibrary)])) optiononeend optiontwo bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(*[artifact;enchantment]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mylibrary)])) optiononeend optiontwo bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend text=Search your library for an artifact or enchantment card and reveal that card. Shuffle your library, then put the card on top of it. mana={W} type=Instant @@ -36240,7 +36253,8 @@ toughness=2 [/card] [card] name=Entomb -auto=moveTo(myGraveyard) notatarget(*|myLibrary) +aicode=activate target(*|mylibrary) moveto(mygraveyard) +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(*|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mygraveyard)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend text=Search your library for a card and put that card into your graveyard. Then shuffle your library. mana={B} type=Instant @@ -36968,7 +36982,8 @@ type=Sorcery [card] name=Eternal Dragon abilities=flying -autohand={2}{cycle}:name(plainscycling) moveTo(myhand) target(plains|mylibrary) +aicode=activate target(plains|mylibrary) moveto(myhand) +autohand={2}{cycle}:name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>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 autograveyard={3}{W}{W}:moveTo(myhand) myUpkeepOnly text=Flying -- {3}{W}{W}: Return Eternal Dragon from your graveyard to your hand. Activate this ability only during your upkeep. -- Plainscycling {2} ({2}, Discard this card: Search your library for a Plains card, reveal it, and put it into your hand. Then shuffle your library.) mana={5}{W}{W} @@ -37101,7 +37116,8 @@ subtype=Arcane [card] name=Ethereal Usher auto={U}{T}:unblockable target(creature) -autohand={1}{U}{U}{discard}:moveTo(myhand) target(*[manacost=6]|mylibrary) asSorcery +aicode=activate target(*[manacost=6]|mylibrary) moveto(myhand) +autohand={1}{U}{U}{discard}:name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>*[manacost=6]|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 asSorcery text={U}, {T}: Target creature is unblockable this turn. -- Transmute {1}{U}{U} ({1}{U}{U}, Discard this card: Search your library for a card with the same converted mana cost as this card, reveal it, and put it into your hand. Then shuffle your library. Transmute only as a sorcery.) mana={5}{U} type=Creature @@ -37271,7 +37287,8 @@ type=Sorcery [/card] [card] name=Everbark Shaman -auto={T}{E(treefolk|mygraveyard)}:target(<2>forest|mylibrary) and!(tap(noevent))! moveTo(mybattlefield) +aicode=activate moveTo(myBattlefield) and!(tap(noevent))! target(<2>forest|myLibrary) +auto={T}{E(treefolk|mygraveyard)}:name(search card) reveal:plibrarycount optionone name(choose card) target(<2>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={T}, Exile a Treefolk card from your graveyard: Search your library for two Forest cards and put them onto the battlefield tapped. Then shuffle your library. mana={4}{G} type=Creature @@ -37397,9 +37414,10 @@ toughness=5 [/card] [card] name=Evolution Charm -auto=may moveTo(myhand) target(land[basic]|mylibrary) +aicode=activate target(land[basic]|mylibrary) moveto(myhand) +auto=choice 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 auto=aslongas(creature|mygraveyard) choice moveTo(myhand) target(creature|mygraveyard) -auto=aslongas(creature|myBattlefield) flying target(creature) +auto=aslongas(creature|myBattlefield) choice flying target(creature) text=Choose one - Search your library for a basic land card, reveal it, put it into your hand, then shuffle your library; or return target creature card from your graveyard to your hand; or target creature gains flying until end of turn. mana={1}{G} type=Instant @@ -37427,7 +37445,8 @@ type=Enchantment [/card] [card] name=Evolving Wilds -auto={T}{S}:moveTo(myBattlefield) and!(tap(noevent))! target(basic|mylibrary) +aicode=activate moveTo(myBattlefield) and!(tap(noevent))! target(land[basic]|myLibrary) +auto={T}{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={T}, Sacrifice Evolving Wilds: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library. type=Land [/card] @@ -37650,7 +37669,8 @@ toughness=1 [/card] [card] name=Expedition Map -auto={2}{T}{S}:moveTo(ownerhand) target(land|myLibrary) +aicode=activate target(land|mylibrary) moveto(myhand) +auto={2}{T}{S}:name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>land|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={2}, {T}, Sacrifice Expedition Map: Search your library for a land card, reveal it, and put it into your hand. Then shuffle your library. mana={1} type=Artifact @@ -37700,14 +37720,9 @@ toughness=3 [/card] [card] name=Exploding Borders -target=land[basic]|mylibrary -auto=moveTo(myBattlefield) -auto=tap -auto=aslongas(forest|myBattlefield) damage:1 opponent -auto=aslongas(island|myBattlefield) damage:1 opponent -auto=aslongas(swamp|myBattlefield) damage:1 opponent -auto=aslongas(mountain|myBattlefield) damage:1 opponent -auto=aslongas(plains|myBattlefield) damage:1 opponent +target=player +aicode=activate moveTo(myBattlefield) and!(tap(noevent) && damage:pbasiclandtypes targetedplayer)! target(land[basic]|myLibrary) +auto=name(search card) reveal:plibrarycount revealzone(mylibrary) optionone name(choose card) target(<1>land[basic]|reveal) moveTo(myBattlefield) and!(tap(noevent) && damage:pbasiclandtypes targetedplayer && all(*|reveal) moveto(ownerlibrary))! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) and!(shuffle)! )! optiontwoend revealend text=Domain - Search your library for a basic land card, put that card onto the battlefield tapped, then shuffle your library. Exploding Borders deals X damage to target player, where X is the number of basic land types among lands you control. mana={2}{R}{G} type=Sorcery @@ -37771,7 +37786,8 @@ type=Sorcery [/card] [card] name=Explosive Vegetation -auto=moveTo(myBattlefield) and!(tap(noevent))! notatarget(land[basic]|mylibrary) +aicode=activate moveTo(myBattlefield) and!(tap(noevent))! 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) and!(tap(noevent))!)! afterrevealedend revealend text=Search your library for up to two basic land cards and put them onto the battlefield tapped. Then shuffle your library. mana={3}{G} type=Sorcery @@ -37871,7 +37887,8 @@ type=Sorcery [card] name=Extract target=player -auto=moveto(exile) target(*|targetedpersonslibrary) +aicode=activate moveto(exile) target(*|targetedpersonslibrary) +auto=reveal:type:*:targetedpersonslibrary revealzone(targetedpersonslibrary) optionone name(choose card) target(*|reveal) moveto(exile) optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) and!(shuffle)! )! optiontwoend revealend text=Search target player's library for a card and exile it. Then that player shuffles his or her library. mana={U} type=Sorcery @@ -38013,7 +38030,8 @@ mana={3}{W} [card] name=Eye of Ugin auto=lord(eldrazi[colorless]|mycastingzone) altercost(colorless,-2) -auto={7}{T}:moveTo(myhand) target(creature[iscolorless]|myLibrary) +aicode=activate target(creature[colorless]|mylibrary) moveto(myhand) +auto={7}{T}: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=Colorless Eldrazi spells you cast cost {2} less to cast. -- {7}, {T}: Search your library for a colorless creature card, reveal it, and put it into your hand. Then shuffle your library. type=Legendary Land [/card] @@ -38149,7 +38167,8 @@ toughness=2 [/card] [card] name=Fabricate -auto=moveTo(myHand) notatarget(artifact|myLibrary) +aicode=activate target(artifact|mylibrary) moveto(myhand) +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>artifact|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 an artifact card, reveal it, and put it into your hand. Then shuffle your library. mana={2}{U} type=Sorcery @@ -38232,7 +38251,7 @@ type=Land name=Faerie Harbinger abilities=flash,flying aicode=activate target(faerie|mylibrary) moveto(mylibrary) and!(moveto(mylibrary))! -auto=Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(faerie|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mylibrary)])) optiononeend optiontwo bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(faerie|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mylibrary)])) optiononeend optiontwo bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend text=Flash -- Flying -- When Faerie Harbinger enters the battlefield, you may search your library for a Faerie card, reveal it, then shuffle your library and put that card on top of it. mana={3}{U} type=Creature @@ -38822,8 +38841,9 @@ type=Sorcery [/card] [card] name=Far Wanderings -auto=if type(*|mygraveyard)~morethan~6 then moveto(mybattlefield) and!(tap(noevent))! target(<3>land[basic]|mylibrary) -auto=ifnot type(*|mygraveyard)~morethan~6 then moveto(mybattlefield) and!(tap(noevent))! target(land[basic]|mylibrary) +aicode=activate transforms((,newability[if type(*|mygraveyard)~morethan~6 then moveto(mybattlefield) and!(tap(noevent))! target(<3>land[basic]|mylibrary)],newability[if type(*|mygraveyard)~lessthan~7 then moveto(mybattlefield) and!(tap(noevent))! target(land[basic]|mylibrary)])) ueot +auto=if type(*|mygraveyard)~morethan~6 then name(search card) reveal:plibrarycount optionone name(choose card) target(<3>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(*|mygraveyard)~lessthan~7 then 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=Search your library for a basic land card and put that card onto the battlefield tapped. Then shuffle your library. -- Threshold - If seven or more cards are in your graveyard, instead search your library for three basic land cards and put them onto the battlefield tapped. Then shuffle your library. mana={2}{G} type=Sorcery @@ -38860,7 +38880,8 @@ toughness=3 [/card] [card] name=Farhaven Elf -auto=may moveTo(myBattlefield) and!(tap(noevent))! target(basic|mylibrary) +aicode=activate moveTo(myBattlefield) and!(tap(noevent))! 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) and!(tap(noevent))!)! afterrevealedend revealend text=When Farhaven Elf enters the battlefield, you may search your library for a basic land card and put it onto the battlefield tapped. If you do, shuffle your library. mana={2}{G} type=Creature @@ -38908,7 +38929,8 @@ toughness=2 [/card] [card] name=Farseek -auto=moveto(myBattlefield) and!(tap(noevent))! notatarget(plains,island,swamp,mountain|mylibrary) +aicode=activate moveTo(myBattlefield) and!(tap(noevent))! target(plains,island,swamp,mountain|myLibrary) +auto=name(search card) reveal:plibrarycount optionone name(choose card) target(plains,island,swamp,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(myBattlefield) and!(tap(noevent))!)! afterrevealedend revealend text=Search your library for a Plains, Island, Swamp, or Mountain card and put it onto the battlefield tapped. Then shuffle your library. mana={1}{G} type=Sorcery @@ -39158,7 +39180,8 @@ toughness=4 [/card] [card] name=Fauna Shaman -auto={G}{T}{D(creature|myhand)}:moveTo(myhand) target(creature|myLibrary) +aicode=activate target(creature|mylibrary) moveto(myhand) +auto={G}{T}{D(creature|myhand)}:name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>creature|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={G},{T}, Discard a creature card: Search your library for a creature card, reveal that card, and put it into your hand. Then shuffle your library. mana={1}{G} type=Creature @@ -40096,7 +40119,8 @@ toughness=2 [/card] [card] name=Fierce Empath -auto=may moveTo(myhand) target(creature[manacost>=6]|mylibrary) +aicode=activate target(creature[manacost>=6]|mylibrary) moveto(myhand) +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>creature[manacost>=6]|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=When Fierce Empath enters the battlefield, you may search your library for a creature card with converted mana cost 6 or more, reveal it, put it into your hand, then shuffle your library. mana={2}{G} type=Creature @@ -40856,7 +40880,8 @@ type=Enchantment [card] name=Flagstones of Trokair auto={T}:Add{W} -auto=@movedTo(this|graveyard) from(battlefield):may moveTo(myBattlefield) and!(tap(noevent))! target(plains|mylibrary) +aicode=activate moveTo(myBattlefield) and!(tap(noevent))! target(plains|myLibrary) +auto=@movedTo(this|graveyard) from(battlefield):name(search card) reveal:plibrarycount optionone name(choose card) target(plains|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={T}: Add {W} to your mana pool. -- When Flagstones of Trokair is put into a graveyard from the battlefield, you may search your library for a Plains card and put it onto the battlefield tapped. If you do, shuffle your library. type=Legendary Land [/card] @@ -41771,7 +41796,8 @@ toughness=2 [card] name=Flood Plain auto=tap(noevent) -auto={T}{S}:moveTo(myBattlefield) target(plains,island|myLibrary) +aicode=activate moveTo(myBattlefield) target(*[forest;plains]|myLibrary) +auto={T}{S}:name(search card) reveal:plibrarycount optionone name(choose card) target(*[forest;plains]|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=Flood Plain enters the battlefield tapped. -- {T}, Sacrifice Flood Plain: Search your library for a Plains or Island card and put it onto the battlefield. Then shuffle your library. type=Land [/card] @@ -41816,7 +41842,8 @@ type=Enchantment [/card] [card] name=Flooded Strand -auto={L}{T}{S}:moveTo(myBattlefield) target(plains,island|mylibrary) +aicode=activate moveTo(myBattlefield) target(*[island;plains]|myLibrary) +auto={L}{T}{S}:name(search card) reveal:plibrarycount optionone name(choose card) target(*[island;plains]|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 Flooded Strand: Search your library for a Plains or Island card and put it onto the battlefield. Then shuffle your library. type=Land [/card] @@ -42299,7 +42326,8 @@ toughness=4 [/card] [card] name=Font of Fertility -auto={1}{G}{S}:moveTo(myBattlefield) and!(tap(noevent))! target(basic|mylibrary) && shuffle +aicode=activate moveTo(myBattlefield) and!(tap(noevent))! target(land[basic]|myLibrary) +auto={1}{G}{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={1}{G}, Sacrifice Font of Fertility: Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library. mana={1}{G} type=Enchantment @@ -42409,6 +42437,7 @@ toughness=2 [card] name=Forbidden Alchemy flashback={6}{B} +abilities=hiddenface aicode=activate transforms((,newability[choice all(*[zpos=1]|mylibrary) moveto(myhand) and!(deplete:3)!])) ueot auto=name(look) reveal:4 optionone name(Get a Card) target(<1>*|reveal) moveto(myhand) optiononeend optiontwo name(put in grave) all(*|reveal) moveto(mygraveyard) optiontwoend revealend text=Look at the top four cards of your library. Put one of them into your hand and the rest into your graveyard. -- Flashback {6}{B} (You may cast this card from your graveyard for its flashback cost. Then exile it.) @@ -42595,7 +42624,8 @@ type=Sorcery [/card] [card] name=Foresight -auto=moveTo(exile) notatarget(<3>*|mylibrary) +aicode=activate target(<3>*|mylibrary) moveto(exile) +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<3>*|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(exile)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend auto=@next upkeep:draw:1 controller text=Search your library for three cards, exile them, then shuffle your library. -- Draw a card at the beginning of the next turn's upkeep. mana={1}{U} @@ -43258,7 +43288,8 @@ toughness=1 name=Frenzied Tilling target=land auto=destroy -auto=target(land[basic]|mylibrary) and!(tap(noevent))! moveto(mybattlefield) +aicode=activate moveTo(myBattlefield) and!(tap(noevent))! 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) and!(tap(noevent))!)! afterrevealedend revealend text=Destroy target land. Search your library for a basic land card and put that card onto the battlefield tapped. Then shuffle your library. mana={3}{R}{G} type=Sorcery @@ -43414,7 +43445,8 @@ toughness=1 [card] name=From Beyond auto=@each my upkeep:token(Eldrazi Scion,Creature Eldrazi Scion,1/1) and!( transforms((,newability[{S}:Add{C}])) forever )! controller -auto={1}{G}{S}:moveto(myhand) notatarget(*[eldrazi]|mylibrary) +aicode=activate target(*[eldrazi]|mylibrary) moveto(myhand) +auto={1}{G}{S}:name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>*[eldrazi]|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.) -- At the beginning of your upkeep, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {1} to your mana pool." -- {1}{G}, Sacrifice From Beyond: Search your library for an Eldrazi card, reveal it, put it into your hand, then shuffle your library. mana={3}{G} abilities=devoid @@ -43443,7 +43475,8 @@ type=Land [/card] [card] name=Frontier Guide -auto={3}{G}{T}:moveTo(myBattlefield) and!(tap(noevent))! target(land[basic]|myLibrary) +aicode=activate moveTo(myBattlefield) and!(tap(noevent))! target(land[basic]|myLibrary) +auto={3}{G}{T}: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={3}{G}, {T}: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library. mana={1}{G} type=Creature @@ -44112,7 +44145,8 @@ type=Sorcery [/card] [card] name=Gaea's Bounty -auto=moveTo(myhand) notatarget(forest|myLibrary) +aicode=activate target(forest|mylibrary) moveto(myhand) +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(forest|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 up to two Forest cards, reveal those cards, and put them into your hand. Then shuffle your library. mana={2}{G} type=Sorcery @@ -44453,6 +44487,7 @@ subtype=Garruk [card] name=Garruk, Caller of Beasts auto=counter(0/0,4,loyalty) +aicode=activate target(<5>creature[zpos<=5]|mylibrary) moveto(myhand) auto={C(0/0,1,Loyalty)}:name(+1: Reveal Cards) reveal:5 optionone target(creature|reveal) moveto(myhand) and!( all(creature|reveal) moveto(myhand) )! optiononeend optiontwo name(bottom of library) target(<1>*|reveal) transforms((,newability[all(*|reveal) bottomoflibrary])) oneshot optiontwoend revealend auto={C(0/0,-3,Loyalty)}:name(-3: Put in Play) notatarget(creature[green]|myhand) moveto(mybattlefield) auto={C(0/0,-7,Loyalty)}:name(-7: Emblem) emblem transforms((,newability[@movedTo(*[creature]|mystack):moveto(mybattlefield) notatarget(creature|mylibrary)])) forever dontremove @@ -44474,8 +44509,9 @@ subtype=Garruk [/card] [card] name=Garruk, the Veil-Cursed +aicode=activate target(creature|mylibrary) moveto(myhand) auto={C(0/0,1,Loyalty)}:name(+1: wolf) token(Wolf,Creature Wolf,1/1,black,deathtouch) -auto={C(0/0,-1,Loyalty)}{S(creature|myBattlefield)}:name(-1: fetch creature) moveTo(ownerhand) notatarget(creature|mylibrary) +auto={C(0/0,-1,Loyalty)}{S(creature|myBattlefield)}:name(-1: fetch creature) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>creature|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 auto={C(0/0,-3,Loyalty)}:name(-3: ultimate) lord(creature|mybattlefield) trample ueot && lord(creature|mybattlefield) foreach(creature|mygraveyard) 1/1 ueot text=+1: Put a 1/1 black Wolf creature token with deathtouch onto the battlefield. -- -1: Sacrifice a creature. If you do, search your library for a creature card, reveal it, put it into your hand, then shuffle your library. -- -3: Creatures you control gain trample and get +X/+X until end of turn, where X is the number of creature cards in your graveyard. type=Planeswalker @@ -44571,8 +44607,9 @@ type=Artifact [/card] [card] name=Gatecreeper Vine -auto=may moveto(myhand) notatarget(basic,gate|mylibrary) abilities=defender +aicode=activate target(land[basic;gate]|mylibrary) moveto(myhand) +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>land[basic;gate]|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 -- When Gatecreeper Vine enters the battlefield, you may search your library for a basic land card or a Gate card, reveal it, put it into your hand, then shuffle your library. mana={1}{G} type=Creature @@ -45045,7 +45082,8 @@ type=Land [/card] [card] name=General Tazri -auto=may moveto(myhand) target(ally|mylibrary) +aicode=activate target(ally|mylibrary) moveto(myhand) +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>ally|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 auto={W}{U}{B}{R}{G}:name(+X/+X) aslongas(ally[white]|myBattlefield) 1/1 all(ally|mybattlefield) && aslongas(ally[blue]|myBattlefield) 1/1 all(ally|mybattlefield) && aslongas(ally[black]|myBattlefield) 1/1 all(ally|mybattlefield) && aslongas(ally[red]|myBattlefield) 1/1 all(ally|mybattlefield) && aslongas(ally[green]|myBattlefield) 1/1 all(ally|mybattlefield) text=When General Tazri enters the battlefield, you may search your library for an Ally creature card, reveal it, put it into your hand, then shuffle your library. -- {W}{U}{B}{R}{G}: Ally creatures you control get +X/+X until end of turn, where X is the number of colors among those creatures. mana={4}{W} @@ -45933,7 +45971,7 @@ type=Instant [card] name=Giant Harbinger aicode=activate target(giant|mylibrary) moveto(mylibrary) and!(moveto(mylibrary))! -auto=Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(giant|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mylibrary)])) optiononeend optiontwo bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(giant|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mylibrary)])) optiononeend optiontwo bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend text=When Giant Harbinger enters the battlefield, you may search your library for a Giant card, reveal it, then shuffle your library and put that card on top of it. mana={4}{R} type=Creature @@ -46171,7 +46209,8 @@ type=Instant [/card] [card] name=Gift of Estates -auto=if type(land|opponentbattlefield)~morethan~type(land|mybattlefield) then target(plains|mylibrary) moveto(myhand) +aicode=activate target(plains|mylibrary) moveto(myhand) +auto=if type(land|opponentbattlefield)~morethan~type(land|mybattlefield) then name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(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=If an opponent controls more lands than you, search your library for up to three Plains cards, reveal them, and put them into your hand. Then shuffle your library. mana={1}{W} type=Sorcery @@ -46741,6 +46780,7 @@ type=Sorcery [/card] [card] name=Glimpse the Future +abilities=hiddenface aicode=activate transforms((,newability[choice all(*[zpos=1]|mylibrary) moveto(myhand) and!(deplete:2)!])) ueot auto=name(look) reveal:3 optionone name(Get a Card) target(<1>*|reveal) moveto(myhand) optiononeend optiontwo name(put in grave) all(*|reveal) moveto(mygraveyard) optiontwoend revealend text=Look at the top three cards of your library. Put one of them into your hand and the rest into your graveyard. @@ -47800,7 +47840,8 @@ toughness=1 [/card] [card] name=Goblin Matron -auto=may moveTo(myHand) target(goblin|mylibrary) +aicode=activate target(goblin|mylibrary) moveto(myhand) +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>goblin|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=When Goblin Matron enters the battlefield, you may search your library for a Goblin card, reveal that card, and put it into your hand. If you do, shuffle your library. mana={2}{R} type=Creature @@ -47939,7 +47980,8 @@ toughness=4 [/card] [card] name=Goblin Recruiter -auto=moveTo(library) target(goblin|mylibrary) oneshot +aicode=activate notatarget(goblin|mylibrary) moveTo(ownerlibrary) and!(moveto(ownerlibrary))! +auto=name(search card) Reveal:type:*:mylibrary revealtype(goblin|mylibrary) revealzone(mylibrary) optionone name(choose cards) target(goblin|reveal) moveto(exile) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend afterrevealed all(tobecast|myexile) moveto(mylibrary) afterrevealedend revealend text=When Goblin Recruiter enters the battlefield, search your library for any number of Goblin cards and reveal those cards. Shuffle your library, then put them on top of it in any order. mana={1}{R} type=Creature @@ -48378,7 +48420,8 @@ subtype=Plains Swamp [/card] [card] name=Godo, Bandit Warlord -auto=may moveTo(mybattlefield) target(equipment|mylibrary) +aicode=activate moveTo(myBattlefield) target(equipment|myLibrary) +auto=name(search card) reveal:plibrarycount optionone name(choose card) target(equipment|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 auto=@combat(attacking) source(this) turnlimited:untap all(this) auto=@combat(attacking) source(this) turnlimited:untap all(samurai|mybattlefield) auto=@combat(attacking) source(this) turnlimited:nextphasealter(add,combatphases,controller,after) @@ -49217,7 +49260,8 @@ toughness=4 [card] name=Grasslands auto=tap(noevent) -auto={T}{S}:moveTo(myBattlefield) target(plains,forest|myLibrary) +aicode=activate moveTo(myBattlefield) target(*[forest;plains]|myLibrary) +auto={T}{S}:name(search card) reveal:plibrarycount optionone name(choose card) target(*[forest;plains]|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=Grasslands enters the battlefield tapped. -- {T}, Sacrifice Grasslands: Search your library for a Forest or Plains card and put it onto the battlefield. Then shuffle your library. type=Land [/card] @@ -49850,7 +49894,8 @@ subtype=Aura [/card] [card] name=Green Sun's Zenith -auto=moveto(mybattlefield) notatarget(creature[green;manacost <=X]|mylibrary) +aicode=activate moveTo(myBattlefield) target(creature[green;manacost<=X]|myLibrary) +auto=name(search card) reveal:plibrarycount optionone name(choose card) target(creature[green;manacost<=X]|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!(activate castcard(putinplay))! afterrevealedend revealend alias=135262 text=Search your library for a green creature card with converted mana cost X or less, put it onto the battlefield, then shuffle your library. Shuffle Green Sun's Zenith into its owner's library. mana={X}{G} @@ -49896,7 +49941,8 @@ toughness=3 [/card] [card] name=Greenseeker -auto={G}{T}{D(*|myhand)}:moveTo(myHand) target(land[basic]|mylibrary) +aicode=activate target(land[basic]|mylibrary) moveto(myhand) +auto={G}{T}{D(*|myhand)}: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={G}, {T}, Discard a card: Search your library for a basic land card, reveal it, and put it into your hand. Then shuffle your library. mana={G} type=Creature @@ -50710,7 +50756,8 @@ type=Enchantment [/card] [card] name=Growth Spasm -auto=moveTo(myBattlefield) and!(tap(noevent))! notatarget(land[basic]|myLibrary) +aicode=activate moveTo(myBattlefield) and!(tap(noevent))! 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) and!(tap(noevent))!)! afterrevealedend revealend auto=token(Eldrazi Spawn,Creature Eldrazi Spawn,0/1) and!( transforms((,newability[{S}:Add{1}])) forever )! text=Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library. -- Put a 0/1 colorless Eldrazi Spawn creature token onto the battlefield. It has "Sacrifice this creature: Add {1} to your mana pool." mana={2}{G} @@ -50721,7 +50768,8 @@ name=Grozoth abilities=defender auto=moveTo(myhand) target(*[manacost=9]|myLibrary) auto={4}:-defender -autohand={1}{U}{U}{S}:moveTo(myhand) target(*[manacost=9]|mylibrary) asSorcery +aicode=activate target(*[manacost=9]|mylibrary) moveto(myhand) +autohand={1}{U}{U}{discard}:name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>*[manacost=9]|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 (This creature can't attack.) -- When Grozoth enters the battlefield, you may search your library for any number of cards that have converted mana cost 9, reveal them, and put them into your hand. If you do, shuffle your library. -- {4}: Grozoth loses defender until end of turn. -- Transmute {1}{U}{U} ({1}{U}{U}, Discard this card: Search your library for a card with the same converted mana cost as this card, reveal it, and put it into your hand. Then shuffle your library. Transmute only as a sorcery.) mana={6}{U}{U}{U} type=Creature @@ -52225,8 +52273,8 @@ toughness=3 [/card] [card] name=Harrow -target=land[basic]|myLibrary -auto=moveTo(myBattlefield) +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=As an additional cost to cast Harrow, sacrifice a land. -- Search your library for up to two basic land cards and put them onto the battlefield. Then shuffle your library. mana={2}{G}{S(land|mybattlefield)} type=Instant @@ -53390,7 +53438,8 @@ toughness=3 [/card] [card] name=Heliod's Pilgrim -auto=may name(Search for an Aura) moveTo(myhand) target(aura|myLibrary) +aicode=activate target(aura|mylibrary) moveto(myhand) +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>aura|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=When Heliod's Pilgrim enters the battlefield, you may search your library for an Aura card, reveal it, put it into your hand, then shuffle your library. mana={2}{W} type=Creature @@ -54363,7 +54412,8 @@ toughness=2 [card] name=Higure, the Still Wind autohand={2}{U}{U}{N}:ninjutsu -auto=@combatdamaged(player) from(this):may moveTo(myhand) target(ninja|mylibrary) +aicode=activate target(ninja|mylibrary) moveto(myhand) +auto=@combatdamaged(player) from(this):name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>ninja|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 auto={2}:unblockable target(creature) text=Ninjutsu {2}{U}{U} ({2}{U}{U}, Return an unblocked attacker you control to hand: Put this card onto the battlefield from your hand tapped and attacking.) -- Whenever Higure deals combat damage to a player, you may search your library for a Ninja card, reveal it, and put it into your hand. If you do, shuffle your library. -- {2}: Target Ninja creature is unblockable this turn. mana={3}{U}{U} @@ -54464,7 +54514,7 @@ toughness=1 [/card] [card] name=Hired Giant -auto=ability$!name(fetch) moveto(mybattlefield) notatarget(land|mylibrary)!$ opponent +auto=ability$!may moveto(mybattlefield) notatarget(land|mylibrary)!$ opponent text=When Hired Giant enters the battlefield, each other player may search his or her library for a land card and put that card onto the battlefield. Then each player who searched his or her library this way shuffles it. mana={3}{R} type=Creature @@ -54589,7 +54639,8 @@ toughness=2 [card] name=Hoarding Dragon abilities=flying -auto=may hand(blink)forsrc target(artifact|mylibrary) +aicode=activate hand(blink)forsrc target(artifact|myLibrary) +auto=name(search card) reveal:plibrarycount optionone name(choose card) target(artifact|reveal) hand(blink)forsrc optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) and!(shuffle)! )! optiontwoend revealend text=Flying -- When Hoarding Dragon enters the battlefield, you may search your library for an artifact card, exile it, then shuffle your library. -- When Hoarding Dragon dies, you may put the exiled card into its owner's hand. mana={3}{R}{R} type=Creature @@ -55232,7 +55283,8 @@ toughness=1 [/card] [card] name=Horizon Spellbomb -auto={2}{T}{S}:name(search basic land) ability$!moveto(ownerhand) notatarget(land[basic]|mylibrary)!$ controller +aicode=activate target(land[basic]|mylibrary) moveto(myhand) +auto={2}{T}{S}: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 auto=@movedTo(this|graveyard) from(battlefield):pay({G}) draw:1 mana={1} type=Artifact @@ -55643,7 +55695,8 @@ type=Artifact [/card] [card] name=Howling Wolf -auto=moveTo(myhand) target(howling wolf|mylibrary) +aicode=activate target(howling wolf|mylibrary) moveto(myhand) +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(howling wolf|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=When Howling Wolf enters the battlefield, you may search your library for up to three cards named Howling Wolf, reveal them, and put them into your hand. If you do, shuffle your library. mana={2}{G}{G} type=Creature @@ -56042,7 +56095,8 @@ type=Instant [/card] [card] name=Hunting Cheetah -auto=@damagefoeof(player) from(this):may moveTo(myHand) target(forest|mylibrary) +aicode=activate target(forest|mylibrary) moveto(myhand) +auto=@damagefoeof(player) from(this):name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>forest|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=Whenever Hunting Cheetah deals damage to an opponent, you may search your library for a Forest card, reveal that card, put it into your hand, then shuffle your library. mana={2}{G} type=Creature @@ -56109,10 +56163,8 @@ subtype=Elf [/card] [card] name=Hunting Wilds -target=forest|mylibrary -auto=moveto(mybattlefield) and!(tap(noevent))! +auto=moveto(mybattlefield) and!(tap(noevent) && kicker untap && kicker becomes(Creature,3/3,haste,green) forever )! target(forest|mylibrary) kicker={3}{G} -auto=kicker untap && becomes(Creature,3/3,haste,green) forever text=Kicker {3}{G} (You may pay an additional {3}{G} as you cast this spell.) -- Search your library for up to two Forest cards and put them onto the battlefield tapped. Then shuffle your library. -- If Hunting Wilds was kicked, untap all Forests put onto the battlefield this way. They become 3/3 green creatures with haste that are still lands. mana={3}{G} type=Sorcery @@ -56698,7 +56750,7 @@ type=Enchantment [card] name=Idyllic Tutor aicode=activate moveTo(myhand) notatarget(enchantment|myLibrary) -auto=Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>enchantment|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 +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>enchantment|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 an enchantment card, reveal it, and put it into your hand. Then shuffle your library. mana={2}{W} type=Sorcery @@ -56716,7 +56768,8 @@ toughness=4 [card] name=Igneous Pouncer abilities=haste -autohand={2}{cycle}:name(swampcycling or mountaincycling) moveTo(myHand) target(mountain,swamp|myLibrary) +aicode=activate target(*[mountain;swamp]|mylibrary) moveto(myhand) +autohand={2}{cycle}:name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>*[mountain;swamp]|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=Haste -- Swampcycling {2}, mountaincycling {2} ({2}, Discard this card: Search your library for a Swamp or Mountain card, reveal it, and put it into your hand. Then shuffle your library.) mana={4}{B}{R} type=Creature @@ -57079,7 +57132,8 @@ name=Imperial Hellkite abilities=flying facedown={3} autofacedown={6}{R}{R}:morph -autofaceup=may moveTo(myhand) target(dragon|mylibrary) +aicode=activate target(dragon|mylibrary) moveto(myhand) +autofaceup=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>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=Flying -- Morph {6}{R}{R} (You may cast this face down as a 2/2 creature for {3}. Turn it face up any time for its morph cost.) -- When Imperial Hellkite is turned face up, you may search your library for a Dragon card, reveal it, and put it into your hand. If you do, shuffle your library. mana={5}{R}{R} type=Creature @@ -57096,7 +57150,8 @@ abilities=controllershroud [/card] [card] name=Imperial Recruiter -auto=may moveTo(myhand) target(creature[power<=2]|mylibrary) +aicode=activate target(creature[power<=2]|mylibrary) moveto(myhand) +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>creature[power<=2]|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=When Imperial Recruiter enters the battlefield, search your library for a creature card with power 2 or less, reveal it, and put it into your hand. Then shuffle your library. mana={2}{R} type=Creature @@ -57240,6 +57295,7 @@ type=Instant [/card] [card] name=Impulse +abilities=hiddenface aicode=activate target(*[zpos<=4]|mylibrary) moveto(ownerhand) auto=name(look) reveal:4 optionone name(Get a card) target(<1>*|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. Put one of them into your hand and the rest on the bottom of your library. @@ -57295,11 +57351,11 @@ type=Sorcery [/card] [card] name=Iname as One -auto=if casted(this) then moveTo(mybattlefield) target(spirit|mylibrary) -auto=@movedTo(this|graveyard) from(battlefield):may all(trigger[to]) moveto(exile) && target(spirit|mylibrary) moveTo(mybattlefield) +aicode=activate moveTo(myBattlefield) target(spirit[-instant;-sorcery]|myLibrary) +auto=if casted(this) then name(search card) reveal:plibrarycount optionone name(choose card) target(spirit[-instant;-sorcery]|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 +auto=@movedTo(this|graveyard) from(battlefield):may all(trigger[to]) moveto(exile) and!( target(spirit[-instant;-sorcery]|mygraveyard) moveTo(myBattlefield) )! text=When Iname as One enters the battlefield, if you cast it from your hand, you may search your library for a Spirit permanent card, put it onto the battlefield, then shuffle your library. -- When Iname as One dies, you may exile it. If you do, return target Spirit permanent card from your graveyard to the battlefield. mana={8}{B}{B}{G}{G} -kicker={0} type=Legendary Creature subtype=Spirit power=8 @@ -57307,7 +57363,8 @@ toughness=8 [/card] [card] name=Iname, Death Aspect -auto=moveTo(mygraveyard) target(spirit|mylibrary) +aicode=activate target(spirit|mylibrary) moveto(mygraveyard) +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) revealtype(spirit|mylibrary) optionone name(choose card) target(spirit|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mygraveyard)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend text=When Iname, Death Aspect enters the battlefield, you may search your library for any number of Spirit cards and put them into your graveyard. If you do, shuffle your library. mana={4}{B}{B} type=Legendary Creature @@ -57674,7 +57731,8 @@ name=Infectious Bloodlust target=creature auto=teach(creature) 2/1 auto=teach(creature) haste -auto=@movedto(mytgt|graveyard) from(Battlefield):may moveto(myhand) notatarget(Infectious Bloodlust|mylibrary) +aicode=activate target(Infectious Bloodlust|mylibrary) moveto(myhand) +auto=@movedto(mytgt|graveyard) from(Battlefield):name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>Infectious Bloodlust|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=Enchant creature -- Enchanted creature gets +2/+1, has haste, and attacks each turn if able. -- When enchanted creature dies, you may search your library for a card named Infectious Bloodlust, reveal it, put it into your hand, then shuffle your library. mana={1}{R} type=Enchantment @@ -57758,7 +57816,8 @@ type=Enchantment [/card] [card] name=Infernal Tutor -auto=if type(*|myhand)~morethan~0 name(search your library for a copy of target card in your hand) then name(search your library for a copy of target card in your hand) target(*|myhand) transforms((,newability[target(*[share!name!]|mylibrary) moveTo(myhand)])) +abilities=hiddenface +auto=if type(*|myhand)~morethan~0 name(search a copy) then name(search a copy) target(*|myhand) transforms((,newability[target(*[share!name!]|mylibrary) moveTo(myhand)])) oneshot auto=if type(*|myhand)~lessthan~1 then target(*|mylibrary) moveTo(myhand) text=Reveal a card from your hand. Search your library for a card with the same name as that card, reveal it, put it into your hand, then shuffle your library. -- Hellbent - If you have no cards in hand, instead search your library for a card, put it into your hand, then shuffle your library. mana={1}{B} @@ -58431,7 +58490,8 @@ type=Sorcery [/card] [card] name=Into the North -auto=moveto(mybattlefield) and!(tap(noevent))! notatarget(land[snow]|mylibrary) +aicode=activate moveTo(myBattlefield) and!(tap(noevent))! target(land[snow]|myLibrary) +auto=name(search card) reveal:plibrarycount optionone name(choose card) target(land[snow]|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=Search your library for a snow land card and put it onto the battlefield tapped. Then shuffle your library. mana={1}{G} type=Sorcery @@ -58535,7 +58595,8 @@ toughness=2 name=Inventors' Fair auto=@each my upkeep restriction{type(artifact|mybattlefield)~morethan~2}:life:1 controller auto={T}:add{C} -auto={4}{T}{S}:moveTo(myHand) notatarget(artifact|myLibrary) restriction{type(artifact|mybattlefield)~morethan~2} +auto={4}{T}{S}:name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>artifact|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 restriction{type(artifact|mybattlefield)~morethan~2} +aicode=activate target(artifact|mylibrary) moveto(myhand) text=At the beginning of your upkeep, if you control three or more artifacts, you gain 1 life. -- {T}: Add {C} to your mana pool. -- {4}, {T}, Sacrifice Inventors' Fair: Search your library for an artifact card, reveal it, put it into your hand, then shuffle your library. Activate this ability only if you control three or more artifacts. type=Legendary Land [/card] @@ -59899,7 +59960,8 @@ toughness=1 [/card] [card] name=Jester's Cap -auto={2}{T}{S}:choice name(target player) target(player) moveto(exile) target(<3>*|targetedpersonslibrary) +aicode=activate moveto(exile) target(<3>*|targetedpersonslibrary) +auto={2}{T}{S}:name(exile cards) target(player) reveal:type:*:targetedpersonslibrary revealzone(targetedpersonslibrary) optionone name(choose card) target(<3>*|reveal) moveto(exile) optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) and!(shuffle)! )! optiontwoend revealend text={2}, {T}, Sacrifice Jester's Cap: Search target player's library for three cards and exile them. Then that player shuffles his or her library. mana={4} type=Artifact @@ -59981,7 +60043,8 @@ toughness=3 [card] name=Jhessian Zombies abilities=fear -autohand={2}{cycle}:name(islandcycling or swampcycling) moveTo(myhand) target(island,swamp|mylibrary) +aicode=activate target(*[island;swamp]|mylibrary) moveto(myhand) +autohand={2}{cycle}:name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>*[island;swamp]|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=Fear (This creature can't be blocked except by artifact creatures and/or black creatures.) -- Islandcycling {2}, swampcycling {2} ({2}, Discard this card: Search your library for an Island or Swamp card, reveal it, and put it into your hand. Then shuffle your library.) mana={4}{U}{B} type=Creature @@ -60332,7 +60395,8 @@ type=Enchantment [/card] [card] name=Journeyer's Kite -auto={3}{T}:moveTo(myHand) target(land[basic]|mylibrary) +aicode=activate target(land[basic]|mylibrary) moveto(myhand) +auto={3}{T}: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={3}, {T}: Search your library for a basic land card, reveal it, and put it into your hand. Then shuffle your library. mana={2} type=Artifact @@ -61277,9 +61341,10 @@ type=Legendary Land [card] name=Karametra, God of Harvests abilities=indestructible +aicode=activate moveTo(myBattlefield) and!(tap(noevent))! target(*[forest;plains]|myLibrary) auto=this(variable{selesnya}<7) transforms((removetypes,newability[becomes(Legendary Enchantment God)])) auto=this(variable{selesnya}>6) transforms((Legendary Enchantment Creature)) -auto=@movedto(creature|stack) from(*|myhand):moveTo(myBattlefield) and!(tap(noevent))! target(forest,plains|mylibrary) +auto=@movedto(creature|stack) from(*|myhand):name(search card) reveal:plibrarycount optionone name(choose card) target(*[forest;plains]|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=Indestructible -- As long as your devotion to green and white is less than seven, Karametra isn't a creature. -- Whenever you cast a creature spell, you may search your library for a Forest or Plains card, put it onto the battlefield tapped, then shuffle your library. mana={3}{G}{W} type=Legendary Enchantment Creature @@ -62386,7 +62451,8 @@ type=Artifact [card] name=Khalni Heart Expedition auto=@movedto(land|myBattlefield):counter(0/0,1,Quest) -auto={C(0/0,-3,Quest)}{S}:target(land[basic]|mylibrary) and!(tap(noevent))! moveTo(mybattlefield) +aicode=activate moveTo(myBattlefield) and!(tap(noevent))! target(land[basic]|myLibrary) +auto={C(0/0,-3,Quest)}{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=Landfall - Whenever a land enters the battlefield under your control, you may put a quest counter on Khalni Heart Expedition. -- Remove three quest counters from Khalni Heart Expedition and sacrifice it: Search your library for up to two basic land cards, put them onto the battlefield tapped, then shuffle your library. mana={1}{G} type=Enchantment @@ -62892,7 +62958,7 @@ toughness=1 [card] name=Kithkin Harbinger aicode=activate target(kithkin|mylibrary) moveto(mylibrary) and!(moveto(mylibrary))! -auto=Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(kithkin|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mylibrary)])) optiononeend optiontwo bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(kithkin|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mylibrary)])) optiononeend optiontwo bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend text=When Kithkin Harbinger enters the battlefield, you may search your library for a Kithkin card, reveal it, then shuffle your library and put that card on top of it. mana={2}{W} type=Creature @@ -63305,7 +63371,8 @@ toughness=2 [card] name=Knight of the Reliquary auto=foreach(land|mygraveyard) 1/1 -auto={T}{S(forest,plains|myBattlefield)}:moveTo(myBattlefield) target(land|mylibrary) +aicode=activate moveTo(myBattlefield) target(land|myLibrary) +auto={T}{S(forest,plains|myBattlefield)}:name(search card) reveal:plibrarycount optionone name(choose card) target(land|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=Knight of the Reliquary gets +1/+1 for each land card in your graveyard. -- {T}, Sacrifice a Forest or Plains: Search your library for a land card, put it onto the battlefield, then shuffle your library. mana={1}{G}{W} type=Creature @@ -63326,7 +63393,8 @@ toughness=2 [card] name=Knight of the White Orchid abilities=first strike -auto=if type(land|mybattlefield)~lessthan~type(land|opponentbattlefield) then choice name(fetch a plains) moveTo(mybattlefield) notatarget(plains|mylibrary) +aicode=activate moveTo(myBattlefield) target(plains|myLibrary) +auto=if type(land|mybattlefield)~lessthan~type(land|opponentbattlefield) then name(search card) reveal:plibrarycount optionone name(choose card) target(plains|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=First strike -- When Knight of the White Orchid enters the battlefield, if an opponent controls more lands than you, you may search your library for a Plains card, put it onto the battlefield, then shuffle your library. mana={W}{W} type=Creature @@ -63435,7 +63503,8 @@ toughness=2 [card] name=Knowledge Exploitation target=opponent -auto=target(*[instant;sorcery]|targetedpersonslibrary) castcard(restricted) +aicode=activate target(*[instant;sorcery]|targetedpersonslibrary) castcard(restricted) +auto=name(search card) reveal:type:*:targetedpersonslibrary revealzone(targetedpersonslibrary) optionone name(choose card) target(*[instant;sorcery]|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|targetedpersonslibrary) moveto(ownerlibrary) and!(activate castcard(restricted))! afterrevealedend revealend other={3}{U} name(Prowl) otherrestriction=prowl text=Prowl {3}{U} (You may cast this for its prowl cost if you dealt combat damage to a player this turn with a Rogue.) -- Search target opponent's library for an instant or sorcery card. You may cast that card without paying its mana cost. Then that player shuffles his or her library. @@ -63702,7 +63771,8 @@ toughness=2 [/card] [card] name=Kor Cartographer -auto=may moveTo(myBattlefield) and!(tap(noevent))! target(plains|mylibrary) +aicode=activate moveTo(myBattlefield) and!(tap(noevent))! target(plains|myLibrary) +auto=name(search card) reveal:plibrarycount optionone name(choose card) target(plains|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 Kor Cartographer enters the battlefield, you may search your library for a Plains card, put it onto the battlefield tapped, then shuffle your library. mana={3}{W} type=Creature @@ -63853,7 +63923,8 @@ toughness=1 [/card] [card] name=Korlash, Heir to Blackblade -auto={D(other *[share!name!]|myhand)}:moveto(mybattlefield) and!(tap(noevent))! target(swamp|mylibrary) +aicode=activate moveTo(myBattlefield) and!(tap(noevent))! target(swamp|myLibrary) +auto={D(other *[share!name!]|myhand)}:name(search card) reveal:plibrarycount optionone name(choose card) target(swamp|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 anyzone=type:swamp:mybattlefield/type:swamp:mybattlefield cdaactive auto={1}{B}:regenerate text=Korlash, Heir to Blackblade's power and toughness are each equal to the number of Swamps you control. -- {1}{B}: Regenerate Korlash. -- Grandeur - Discard another card named Korlash, Heir to Blackblade: Search your library for up to two Swamp cards, put them onto the battlefield tapped, then shuffle your library. @@ -67771,6 +67842,7 @@ toughness=1 [/card] [card] name=Lone Revenant +abilities=hiddenface aicode=activate target(*[zpos<=4]|mylibrary) moveto(myhand) auto=@combatdamagefoeof(player) from(this) restriction{type(creature|myBattlefield)~lessthan~1}:name(look) reveal:4 optionone name(Get a card) target(<1>*|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<4>*|reveal) bottomoflibrary optiontwoend revealend text=Hexproof (This creature can't be the target of spells or abilities your opponents control.) -- Whenever Lone Revenant deals combat damage to a player, if you control no other creatures, look at the top four cards of your library. Put one of them into your hand and the rest on the bottom of your library in any order. @@ -77620,7 +77692,7 @@ toughness=3 [/card] [card] name=Nagging Thoughts -abilities=madness +abilities=madness,hiddenface 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 name(put in graveyard) target(<2>*|reveal) moveto(mygraveyard) optiontwoend revealend autoexile=restriction{discarded} pay({1}{U}) name(pay 1U to cast) activate name(pay 1U to cast) castcard(normal)?name(put in graveyard) moveto(ownergraveyard) @@ -85135,7 +85207,7 @@ type=Enchantment [card] name=Personal Tutor aicode=activate target(sorcery|mylibrary) moveto(mylibrary) and!(moveto(mylibrary))! -auto=Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>sorcery|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mylibrary)])) optiononeend optiontwo bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>sorcery|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mylibrary)])) optiononeend optiontwo bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend text=Search your library for a sorcery card and reveal that card. Shuffle your library, then put the card on top of it. mana={U} type=Sorcery @@ -91808,6 +91880,7 @@ toughness=6 [/card] [card] name=Raven Familiar +abilities=hiddenface auto=upcost[{2}{u};next upkeep] sacrifice aicode=activate transforms((,newability[moveto(myhand) all(*[zpos=1]|mylibrary) && bottomoflibrary all(*[zpos<=2]|mylibrary)])) ueot auto=reveal:3 optionone name(Get a card) target(<1>*|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<3>*|reveal) bottomoflibrary optiontwoend revealend @@ -94469,6 +94542,7 @@ type=Sorcery [/card] [card] name=Reviving Vapors +abilities=hiddenface auto=reveal:3 optionone name(Reveal and gain life) target(<1>*|reveal) transforms((,newability[life:manacost controller],newability[moveto(myhand)])) forever optiononeend optiontwo all(*|reveal) moveto(mygraveyard) optiontwoend revealend text=Reveal the top three cards of your library and put one of them into your hand. You gain life equal to that card's converted mana cost. Put all other cards revealed this way into your graveyard. mana={2}{W}{U} @@ -100619,14 +100693,15 @@ toughness=3 [/card] [card] name=Sea Gate Oracle +abilities=hiddenface +aicode=activate transforms((,newability[moveto(myhand) all(*[zpos=1]|mylibrary) && bottomoflibrary all(*[zpos=2]|mylibrary)])) ueot +auto=name(look) reveal:2 optionone name(Get a card) target(<1>*|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<2>*|reveal) bottomoflibrary optiontwoend revealend +text=When Sea Gate Oracle enters the battlefield, look at the top two cards of your library. Put one of them into your hand and the other on the bottom of your library. mana={2}{U} type=Creature subtype=Human Wizard power=1 toughness=3 -aicode=activate transforms((,newability[moveto(myhand) all(*[zpos=1]|mylibrary) && bottomoflibrary all(*[zpos=2]|mylibrary)])) ueot -auto=name(look) reveal:2 optionone name(Get a card) target(<1>*|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<2>*|reveal) bottomoflibrary optiontwoend revealend -text=When Sea Gate Oracle enters the battlefield, look at the top two cards of your library. Put one of them into your hand and the other on the bottom of your library. [/card] [card] name=Sea Gate Wreckage @@ -104735,6 +104810,7 @@ toughness=2 [/card] [card] name=Sight Beyond Sight +abilities=hiddenface aicode=activate transforms((,newability[moveto(myhand) all(*[zpos=1]|mylibrary) && bottomoflibrary all(*[zpos=2]|mylibrary)])) ueot auto=name(look) reveal:2 optionone name(Get a card) target(<1>*|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<2>*|reveal) bottomoflibrary optiontwoend revealend auto=if rebound then moveto(exile) and!( transforms((,newability[@rebounded:may activate castcard(normal)])) forever )! @@ -107435,6 +107511,7 @@ subtype=Aura [/card] [card] name=Sleight of Hand +abilities=hiddenface aicode=activate transforms((,newability[moveto(myhand) all(*[zpos=1]|mylibrary) && bottomoflibrary all(*[zpos=2]|mylibrary)])) ueot auto=name(Look) reveal:2 optionone name(Get a card) target(<1>*|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<2>*|reveal) bottomoflibrary optiontwoend revealend text=Look at the top two cards of your library. Put one of them into your hand and the other on the bottom of your library. @@ -113950,6 +114027,7 @@ type=Instant [/card] [card] name=Strategic Planning +abilities=hiddenface aicode=activate transforms((,newability[choice all(*[zpos=1]|mylibrary) moveto(myhand) and!(deplete:2)!])) ueot auto=name(look) reveal:3 optionone name(Get a Card) target(<1>*|reveal) moveto(myhand) optiononeend optiontwo name(put in grave) all(*|reveal) moveto(mygraveyard) optiontwoend revealend text=Look at the top three cards of your library. Put one of them into your hand and the rest into your graveyard. @@ -114912,6 +114990,7 @@ toughness=1 [/card] [card] name=Sultai Soothsayer +abilities=hiddenface aicode=activate transforms((,newability[choice all(*[zpos=1]|mylibrary) moveto(myhand) and!(deplete:3)!])) ueot auto=name(look) reveal:4 optionone name(Get a Card) target(<1>*|reveal) moveto(myhand) optiononeend optiontwo name(put in grave) all(*|reveal) moveto(mygraveyard) optiontwoend revealend text=When Sultai Soothsayer enters the battlefield, look at the top four cards of your library. Put one of them into your hand and the rest into your graveyard. @@ -115498,7 +115577,7 @@ toughness=10 [card] name=Supreme Inquisitor aicode=activate moveto(exile) target(*|targetedpersonslibrary) -auto={T(wizard|myBattlefield)}{T(wizard|myBattlefield)}{T(wizard|myBattlefield)}{T(wizard|myBattlefield)}{T(wizard|myBattlefield)}:name(target player) target(player) reveal:type:*:targetedpersonslibrary revealzone(targetedpersonslibrary) optionone name(choose card) target(*|reveal) moveto(exile) optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) and!(shuffle)! )! optiontwoend revealend +auto={T(wizard|myBattlefield)}{T(wizard|myBattlefield)}{T(wizard|myBattlefield)}{T(wizard|myBattlefield)}{T(wizard|myBattlefield)}:name(exile cards) target(player) reveal:type:*:targetedpersonslibrary revealzone(targetedpersonslibrary) optionone name(choose card) target(*|reveal) moveto(exile) optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) and!(shuffle)! )! optiontwoend revealend text=Tap five untapped Wizards you control: Search target player's library for up to five cards and exile them. Then that player shuffles his or her library. mana={3}{U}{U} type=Creature @@ -119556,6 +119635,7 @@ toughness=2 name=Thieves' Fortune other={U} name(Prowl) otherrestriction=prowl +abilities=hiddenface aicode=activate transforms((,newability[choice all(*[zpos=4]|mylibrary) moveto(myhand) && bottomoflibrary all(*[zpos<=3]|mylibrary)],newability[choice all(*[zpos=3]|mylibrary) moveto(myhand) && bottomoflibrary all(*[zpos<=3]|mylibrary)],newability[choice all(*[zpos=2]|mylibrary) moveto(myhand) && bottomoflibrary all(*[zpos<=3]|mylibrary)],newability[choice all(*[zpos=1]|mylibrary) moveto(myhand) && bottomoflibrary all(*[zpos<=3]|mylibrary)])) ueot auto=reveal:4 optionone name(Get a card) target(<1>*|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<4>*|reveal) bottomoflibrary optiontwoend revealend text=Prowl {U} (You may cast this for its prowl cost if you dealt combat damage to a player this turn with a Rogue.) -- Look at the top four cards of your library. Put one of them into your hand and the rest on the bottom of your library in any order. @@ -122444,7 +122524,7 @@ toughness=4 [/card] [card] name=Tower Geist -abilities=flying +abilities=flying,hiddenface 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. @@ -135127,7 +135207,7 @@ type=Instant [card] name=Worldly Tutor aicode=activate target(creature|mylibrary) moveto(mylibrary) and!(moveto(mylibrary))! -auto=Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>creature|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mylibrary)])) optiononeend optiontwo bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>creature|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(mylibrary)])) optiononeend optiontwo bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend text=Search your library for a creature card and reveal that card. Shuffle your library, then put the revealed card back on top of it. mana={G} type=Instant From 1380ee6f201e9b5d11198a40834a26481ed6126e Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Sun, 26 Feb 2017 23:21:23 +0800 Subject: [PATCH 6/6] equal typo fix --- projects/mtg/src/GameStateShop.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/mtg/src/GameStateShop.cpp b/projects/mtg/src/GameStateShop.cpp index 38a180a60..8be4ba36f 100644 --- a/projects/mtg/src/GameStateShop.cpp +++ b/projects/mtg/src/GameStateShop.cpp @@ -271,7 +271,7 @@ void GameStateShop::cancelBooster(int) void GameStateShop::purchaseCard(int controlId) { MTGCard * c = srcCards->getCard(controlId - BOOSTER_SLOTS); - if (!c || !c->data || playerdata->credits - mPrices[controlId] < 0 || (c && c->getRarity() != Constants::RARITY_T))//cant buy tokens.... + if (!c || !c->data || playerdata->credits - mPrices[controlId] < 0 || (c && c->getRarity() == Constants::RARITY_T))//cant buy tokens.... return; myCollection->Add(c); int price = mPrices[controlId];