From 19d93f9e34402d5771903ab0268c2c1de93579b3 Mon Sep 17 00:00:00 2001 From: swordshine Date: Sat, 15 Jun 2013 00:31:43 +0000 Subject: [PATCH] - Added Mindlock Orb and Shadow of Doubt --- .gitattributes | 2 + res/cardsfolder/a/arcum_dagsson.txt | 2 +- res/cardsfolder/a/aurochs_herd.txt | 2 +- res/cardsfolder/a/avarax.txt | 2 +- res/cardsfolder/b/borderland_ranger.txt | 2 +- res/cardsfolder/c/centaur_rootcaster.txt | 2 +- res/cardsfolder/c/civic_wayfinder.txt | 2 +- res/cardsfolder/c/corpse_connoisseur.txt | 2 +- res/cardsfolder/d/daru_cavalier.txt | 2 +- res/cardsfolder/e/elfhame_sanctuary.txt | 2 +- res/cardsfolder/e/embermage_goblin.txt | 2 +- res/cardsfolder/f/farhaven_elf.txt | 2 +- res/cardsfolder/f/flagstones_of_trokair.txt | 2 +- res/cardsfolder/g/gigantiform.txt | 2 +- res/cardsfolder/g/goblin_matron.txt | 2 +- res/cardsfolder/g/godo_bandit_warlord.txt | 2 +- res/cardsfolder/g/grozoth.txt | 2 +- res/cardsfolder/h/hibernations_end.txt | 2 +- res/cardsfolder/h/higure_the_still_wind.txt | 2 +- res/cardsfolder/h/hoarding_dragon.txt | 2 +- res/cardsfolder/h/howling_wolf.txt | 2 +- res/cardsfolder/i/imperial_hellkite.txt | 2 +- res/cardsfolder/i/iname_as_one.txt | 2 +- res/cardsfolder/i/iname_death_aspect.txt | 2 +- res/cardsfolder/l/land_tax.txt | 2 +- res/cardsfolder/l/lost_auramancers.txt | 2 +- res/cardsfolder/m/mindlock_orb.txt | 6 +++ .../m/mishra_artificer_prodigy.txt | 2 +- .../m/momir_vig_simic_visionary.txt | 2 +- res/cardsfolder/n/nesting_wurm.txt | 2 +- res/cardsfolder/p/pattern_of_rebirth.txt | 2 +- res/cardsfolder/q/quirion_trailblazer.txt | 2 +- res/cardsfolder/r/ranger_of_eos.txt | 2 +- res/cardsfolder/r/ratcatcher.txt | 2 +- res/cardsfolder/r/remembrance.txt | 2 +- res/cardsfolder/s/screaming_seahawk.txt | 2 +- res/cardsfolder/s/seedguide_ash.txt | 2 +- res/cardsfolder/s/shadow_of_doubt.txt | 9 +++++ res/cardsfolder/s/silverglade_elemental.txt | 2 +- res/cardsfolder/s/skyshroud_sentinel.txt | 2 +- res/cardsfolder/s/solemn_simulacrum.txt | 4 +- res/cardsfolder/s/sphinx_summoner.txt | 2 +- res/cardsfolder/s/squadron_hawk.txt | 2 +- res/cardsfolder/t/tallowisp.txt | 2 +- res/cardsfolder/t/treasure_mage.txt | 2 +- res/cardsfolder/t/trench_gorger.txt | 2 +- res/cardsfolder/t/trinket_mage.txt | 2 +- res/cardsfolder/v/verdant_succession.txt | 2 +- res/cardsfolder/w/wild_pair.txt | 2 +- res/cardsfolder/y/yavimaya_dryad.txt | 2 +- res/cardsfolder/y/yavimaya_elder.txt | 2 +- res/cardsfolder/z/zur_the_enchanter.txt | 2 +- .../forge/card/ability/ai/ChangeZoneAi.java | 33 ++++++++++++----- .../java/forge/card/ability/ai/FightAi.java | 2 - .../java/forge/card/ability/ai/PumpAi.java | 2 - .../ability/effects/ChangeZoneAllEffect.java | 26 +++++++++---- .../ability/effects/ChangeZoneEffect.java | 37 +++++++++++++------ .../java/forge/game/phase/CombatUtil.java | 1 - src/main/java/forge/game/player/Player.java | 8 ++-- src/main/java/forge/gui/GuiDialog.java | 3 -- 60 files changed, 138 insertions(+), 91 deletions(-) create mode 100644 res/cardsfolder/m/mindlock_orb.txt create mode 100644 res/cardsfolder/s/shadow_of_doubt.txt diff --git a/.gitattributes b/.gitattributes index 1bfb8b68077..4e0636f634e 100644 --- a/.gitattributes +++ b/.gitattributes @@ -6858,6 +6858,7 @@ res/cardsfolder/m/mindlash_sliver.txt svneol=native#text/plain res/cardsfolder/m/mindleech_mass.txt -text res/cardsfolder/m/mindless_automaton.txt svneol=native#text/plain res/cardsfolder/m/mindless_null.txt -text +res/cardsfolder/m/mindlock_orb.txt -text res/cardsfolder/m/mindmoil.txt -text res/cardsfolder/m/minds_desire.txt svneol=native#text/plain res/cardsfolder/m/minds_eye.txt svneol=native#text/plain @@ -9638,6 +9639,7 @@ res/cardsfolder/s/shades_form.txt svneol=native#text/plain res/cardsfolder/s/shadow_alley_denizen.txt -text res/cardsfolder/s/shadow_guildmage.txt svneol=native#text/plain res/cardsfolder/s/shadow_lance.txt svneol=native#text/plain +res/cardsfolder/s/shadow_of_doubt.txt -text res/cardsfolder/s/shadow_rider.txt svneol=native#text/plain res/cardsfolder/s/shadow_rift.txt svneol=native#text/plain res/cardsfolder/s/shadow_slice.txt -text diff --git a/res/cardsfolder/a/arcum_dagsson.txt b/res/cardsfolder/a/arcum_dagsson.txt index c981f4d8e43..be560aced85 100644 --- a/res/cardsfolder/a/arcum_dagsson.txt +++ b/res/cardsfolder/a/arcum_dagsson.txt @@ -3,7 +3,7 @@ ManaCost:3 U Types:Legendary Creature Human Artificer PT:2/2 A:AB$ Destroy | Cost$ T | ValidTgts$ Creature.Artifact | TgtPrompt$ Select target artifact creature | Sacrifice$ True | SubAbility$ DBChange | SpellDescription$ Target artifact creature's controller sacrifices it. That player may search his or her library for a noncreature artifact card, put it onto the battlefield, then shuffle his or her library. -SVar:DBChange:DB$ ChangeZone | Optional$ True | Origin$ Library | Destination$ Battlefield | ChangeType$ Artifact.nonCreature | DefinedPlayer$ TargetedController | ChangeNum$ 1 +SVar:DBChange:DB$ ChangeZone | Optional$ True | Origin$ Library | Destination$ Battlefield | ChangeType$ Artifact.nonCreature | DefinedPlayer$ TargetedController | ChangeNum$ 1 | ShuffleNonMandatory$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/arcum_dagsson.jpg Oracle:{T}: Target artifact creature's controller sacrifices it. That player may search his or her library for a noncreature artifact card, put it onto the battlefield, then shuffle his or her library. SetInfo:CSP Rare \ No newline at end of file diff --git a/res/cardsfolder/a/aurochs_herd.txt b/res/cardsfolder/a/aurochs_herd.txt index c64ebd7e179..e423bfdb0eb 100644 --- a/res/cardsfolder/a/aurochs_herd.txt +++ b/res/cardsfolder/a/aurochs_herd.txt @@ -4,7 +4,7 @@ Types:Creature Aurochs PT:4/4 K:Trample T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for an Aurochs card, reveal it, and put it into your hand. If you do, shuffle your library. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Card.Aurochs | ChangeNum$ 1 +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Card.Aurochs | ChangeNum$ 1 | ShuffleNonMandatory$ True T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME attacks, it gets +1/+0 until end of turn for each other attacking Aurochs. SVar:TrigPump:AB$ Pump | Cost$ 0 | Defined$ Self | NumAtt$ X | References$ X SVar:X:Count$Valid Aurochs.attacking+Other diff --git a/res/cardsfolder/a/avarax.txt b/res/cardsfolder/a/avarax.txt index 235138c2fc7..633d8888abd 100644 --- a/res/cardsfolder/a/avarax.txt +++ b/res/cardsfolder/a/avarax.txt @@ -5,7 +5,7 @@ PT:3/3 K:Haste A:AB$ Pump | Cost$ 1 R | NumAtt$ 1 | SpellDescription$ CARDNAME gets +1/+0 until end of turn. T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | OptionalDecider$ You | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for a card named Avarax, reveal it, and put it into your hand. If you do, shuffle your library. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Card.namedAvarax | ChangeNum$ 1 +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Card.namedAvarax | ChangeNum$ 1 | ShuffleNonMandatory$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/avarax.jpg Oracle:Haste\nWhen Avarax enters the battlefield, you may search your library for a card named Avarax, reveal it, and put it into your hand. If you do, shuffle your library.\n{1}{R}: Avarax gets +1/+0 until end of turn. SetInfo:ONS Uncommon \ No newline at end of file diff --git a/res/cardsfolder/b/borderland_ranger.txt b/res/cardsfolder/b/borderland_ranger.txt index 84c06561867..ddd0e4bd354 100644 --- a/res/cardsfolder/b/borderland_ranger.txt +++ b/res/cardsfolder/b/borderland_ranger.txt @@ -3,7 +3,7 @@ ManaCost:2 G Types:Creature Human Scout PT:2/2 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for a basic land card, reveal it, and put it into your hand. If you do, shuffle your library. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Land.Basic | ChangeNum$ 1 +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Land.Basic | ChangeNum$ 1 | ShuffleNonMandatory$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/borderland_ranger.jpg Oracle:When Borderland Ranger enters the battlefield, you may search your library for a basic land card, reveal it, and put it into your hand. If you do, shuffle your library. SetInfo:M10 Common diff --git a/res/cardsfolder/c/centaur_rootcaster.txt b/res/cardsfolder/c/centaur_rootcaster.txt index 70c08b5919f..8d662b265a3 100644 --- a/res/cardsfolder/c/centaur_rootcaster.txt +++ b/res/cardsfolder/c/centaur_rootcaster.txt @@ -3,7 +3,7 @@ ManaCost:3 G Types:Creature Centaur Druid PT:2/2 T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | Execute$ TrigChange | CombatDamage$ True | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, you may search your library for a basic land card and put that card onto the battlefield tapped. If you do, shuffle your library. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Battlefield | Tapped$ True | ChangeType$ Land.Basic | ChangeNum$ 1 +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Battlefield | Tapped$ True | ChangeType$ Land.Basic | ChangeNum$ 1 | ShuffleNonMandatory$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/centaur_rootcaster.jpg Oracle:Whenever Centaur Rootcaster deals combat damage to a player, you may search your library for a basic land card and put that card onto the battlefield tapped. If you do, shuffle your library. SetInfo:JUD Common \ No newline at end of file diff --git a/res/cardsfolder/c/civic_wayfinder.txt b/res/cardsfolder/c/civic_wayfinder.txt index e0124b9ff45..f282bc011fd 100644 --- a/res/cardsfolder/c/civic_wayfinder.txt +++ b/res/cardsfolder/c/civic_wayfinder.txt @@ -3,7 +3,7 @@ ManaCost:2 G Types:Creature Elf Warrior Druid PT:2/2 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for a basic land card, reveal it, and put it into your hand. If you do, shuffle your library. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Land.Basic | ChangeNum$ 1 +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Land.Basic | ChangeNum$ 1 | ShuffleNonMandatory$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/civic_wayfinder.jpg Oracle:When Civic Wayfinder enters the battlefield, you may search your library for a basic land card, reveal it, and put it into your hand. If you do, shuffle your library. SetInfo:RAV Common diff --git a/res/cardsfolder/c/corpse_connoisseur.txt b/res/cardsfolder/c/corpse_connoisseur.txt index 9c8d4716d26..32888c5da9e 100644 --- a/res/cardsfolder/c/corpse_connoisseur.txt +++ b/res/cardsfolder/c/corpse_connoisseur.txt @@ -3,7 +3,7 @@ ManaCost:4 B Types:Creature Zombie Wizard PT:3/3 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for a creature card and put that card into your graveyard. If you do, shuffle your library. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Graveyard | ChangeType$ Creature | ChangeNum$ 1 +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Graveyard | ChangeType$ Creature | ChangeNum$ 1 | ShuffleNonMandatory$ True K:Unearth:3 B SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/corpse_connoisseur.jpg diff --git a/res/cardsfolder/d/daru_cavalier.txt b/res/cardsfolder/d/daru_cavalier.txt index cc0e6af929c..53b0c66f0aa 100644 --- a/res/cardsfolder/d/daru_cavalier.txt +++ b/res/cardsfolder/d/daru_cavalier.txt @@ -4,7 +4,7 @@ Types:Creature Human Soldier PT:2/2 K:First Strike T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for a card named CARDNAME, reveal it, and put it into your hand. If you do, shuffle your library. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Card.namedDaru Cavalier | ChangeNum$ 1 +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Card.namedDaru Cavalier | ChangeNum$ 1 | ShuffleNonMandatory$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/daru_cavalier.jpg Oracle:First strike\nWhen Daru Cavalier enters the battlefield, you may search your library for a card named Daru Cavalier, reveal it, and put it into your hand. If you do, shuffle your library. SetInfo:ONS Common \ No newline at end of file diff --git a/res/cardsfolder/e/elfhame_sanctuary.txt b/res/cardsfolder/e/elfhame_sanctuary.txt index 42417a99545..000926d9524 100644 --- a/res/cardsfolder/e/elfhame_sanctuary.txt +++ b/res/cardsfolder/e/elfhame_sanctuary.txt @@ -2,7 +2,7 @@ Name:Elfhame Sanctuary ManaCost:1 G Types:Enchantment T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigChange | TriggerDescription$ 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. -SVar:TrigChange:AB$ ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Land.Basic | ChangeNum$ 1 | SubAbility$ DBSkipDraw +SVar:TrigChange:AB$ ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Land.Basic | ChangeNum$ 1 | SubAbility$ DBSkipDraw | ShuffleNonMandatory$ True SVar:DBSkipDraw:DB$ Effect | Name$ Elfhame Sanctuary Effect | Defined$ You | StaticAbilities$ SkipDraw SVar:SkipDraw:Mode$ Continuous | Affected$ You | AddKeyword$ Skip your draw step. | EffectZone$ Command | Description$ Skip your draw step. SVar:RemAIDeck:True diff --git a/res/cardsfolder/e/embermage_goblin.txt b/res/cardsfolder/e/embermage_goblin.txt index c8912662254..360a2b455d9 100644 --- a/res/cardsfolder/e/embermage_goblin.txt +++ b/res/cardsfolder/e/embermage_goblin.txt @@ -4,7 +4,7 @@ Types:Creature Goblin Wizard PT:1/1 A:AB$ DealDamage | Cost$ T | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player | NumDmg$ 1 | SpellDescription$ CARDNAME deals 1 damage to target creature or player. T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | OptionalDecider$ You | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for a card named CARDNAME, reveal it, and put it into your hand. If you do, shuffle your library. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Card.namedEmbermage Goblin | ChangeNum$ 1 +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Card.namedEmbermage Goblin | ChangeNum$ 1 | ShuffleNonMandatory$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/embermage_goblin.jpg Oracle: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.\n{T}: Embermage Goblin deals 1 damage to target creature or player. SetInfo:ONS Uncommon \ No newline at end of file diff --git a/res/cardsfolder/f/farhaven_elf.txt b/res/cardsfolder/f/farhaven_elf.txt index 0b0973a27bf..cd74791df10 100644 --- a/res/cardsfolder/f/farhaven_elf.txt +++ b/res/cardsfolder/f/farhaven_elf.txt @@ -3,7 +3,7 @@ ManaCost:2 G Types:Creature Elf Druid PT:1/1 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for a basic land card and put that card onto the battlefield tapped. If you do, shuffle your library. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Battlefield | Tapped$ True | ChangeType$ Land.Basic | ChangeNum$ 1 +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Battlefield | Tapped$ True | ChangeType$ Land.Basic | ChangeNum$ 1 | ShuffleNonMandatory$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/farhaven_elf.jpg Oracle: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. SetInfo:SHM Common \ No newline at end of file diff --git a/res/cardsfolder/f/flagstones_of_trokair.txt b/res/cardsfolder/f/flagstones_of_trokair.txt index 95e89352b11..b96ac05587a 100644 --- a/res/cardsfolder/f/flagstones_of_trokair.txt +++ b/res/cardsfolder/f/flagstones_of_trokair.txt @@ -3,7 +3,7 @@ ManaCost:no cost Types:Legendary Land A:AB$ Mana | Cost$ T | Produced$ W | SpellDescription$ Add W to your mana pool. T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigChange | OptionalDecider$ TriggeredCardController | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME 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. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Battlefield | Tapped$ True | ChangeType$ Card.Plains | ChangeNum$ 1 +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Battlefield | Tapped$ True | ChangeType$ Card.Plains | ChangeNum$ 1 | ShuffleNonMandatory$ True SVar:SacMe:3 SVar:Picture:http://www.wizards.com/global/images/magic/general/flagstones_of_trokair.jpg Oracle:{T}: Add {W} to your mana pool.\nWhen 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. diff --git a/res/cardsfolder/g/gigantiform.txt b/res/cardsfolder/g/gigantiform.txt index ec93482acfe..3afe9b78bdf 100644 --- a/res/cardsfolder/g/gigantiform.txt +++ b/res/cardsfolder/g/gigantiform.txt @@ -6,7 +6,7 @@ K:Enchant creature A:SP$ Attach | Cost$ 3 G G | ValidTgts$ Creature | AILogic$ Pump S:Mode$ Continuous | Affected$ Creature.EnchantedBy | SetPower$ 8 | SetToughness$ 8 | AddKeyword$ Trample | Description$ Enchanted creature is 8/8 and has trample. T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self+kicked | OptionalDecider$ You | Execute$ KickedGiant | TriggerDescription$ When CARDNAME enters the battlefield, if it was kicked, you may search your library for a card named CARDNAME, put it onto the battlefield, then shuffle your library. -SVar:KickedGiant:DB$ ChangeZone | Origin$ Library | Destination$ Battlefield | ChangeType$ Card.namedGigantiform | ChangeNum$ 1 +SVar:KickedGiant:DB$ ChangeZone | Origin$ Library | Destination$ Battlefield | ChangeType$ Card.namedGigantiform | ChangeNum$ 1 | ShuffleNonMandatory$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/gigantiform.jpg Oracle:Kicker {4}\nEnchant creature\nEnchanted creature is 8/8 and has trample.\nWhen Gigantiform enters the battlefield, if it was kicked, you may search your library for a card named Gigantiform, put it onto the battlefield, then shuffle your library. SetInfo:ZEN Rare \ No newline at end of file diff --git a/res/cardsfolder/g/goblin_matron.txt b/res/cardsfolder/g/goblin_matron.txt index e460b34a9d5..8c7a12ea869 100644 --- a/res/cardsfolder/g/goblin_matron.txt +++ b/res/cardsfolder/g/goblin_matron.txt @@ -3,7 +3,7 @@ ManaCost:2 R Types:Creature Goblin PT:1/1 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME 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. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Card.Goblin | ChangeNum$ 1 +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Card.Goblin | ChangeNum$ 1 | ShuffleNonMandatory$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/goblin_matron.jpg Oracle: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. SetInfo:PO2 Uncommon diff --git a/res/cardsfolder/g/godo_bandit_warlord.txt b/res/cardsfolder/g/godo_bandit_warlord.txt index bec71eb41cc..fa068385543 100644 --- a/res/cardsfolder/g/godo_bandit_warlord.txt +++ b/res/cardsfolder/g/godo_bandit_warlord.txt @@ -3,7 +3,7 @@ ManaCost:5 R Types:Legendary Creature Human Barbarian PT:3/3 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | OptionalDecider$ You | Execute$ TrigTutorEquip | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for an Equipment card and put it onto the battlefield. If you do, shuffle your library. -SVar:TrigTutorEquip:AB$ ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Battlefield | ChangeType$ Equipment | ChangeNum$ 1 +SVar:TrigTutorEquip:AB$ ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Battlefield | ChangeType$ Equipment | ChangeNum$ 1 | ShuffleNonMandatory$ True T:Mode$ Attacks | ValidCard$ Creature.Self | TriggerZones$ Battlefield | Execute$ TrigUntap | FirstAttack$ True | TriggerDescription$ Whenever CARDNAME attacks for the first time each turn, untap it and all Samurai you control. After this phase, there is an additional combat phase. SVar:TrigUntap:AB$ UntapAll | Cost$ 0 | ValidCards$ Card.Self,Samurai.YouCtrl | SubAbility$ DBAddCombat SVar:DBAddCombat:DB$ AddPhase | ExtraPhase$ BeginCombat | AfterPhase$ EndCombat diff --git a/res/cardsfolder/g/grozoth.txt b/res/cardsfolder/g/grozoth.txt index a1bc90e22da..df1d6f03168 100644 --- a/res/cardsfolder/g/grozoth.txt +++ b/res/cardsfolder/g/grozoth.txt @@ -4,7 +4,7 @@ Types:Creature Leviathan PT:9/9 K:Defender T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME 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. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Card.cmcEQ9 | ChangeNum$ X | References$ X +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Card.cmcEQ9 | ChangeNum$ X | References$ X | ShuffleNonMandatory$ True A:AB$ Debuff | Cost$ 4 | Keywords$ Defender | Defined$ Self | SpellDescription$ CARDNAME loses defender until end of turn. K:Transmute:1 U U SVar:X:Count$InYourLibrary diff --git a/res/cardsfolder/h/hibernations_end.txt b/res/cardsfolder/h/hibernations_end.txt index e8f0ed7b914..69a52805f3a 100644 --- a/res/cardsfolder/h/hibernations_end.txt +++ b/res/cardsfolder/h/hibernations_end.txt @@ -3,7 +3,7 @@ ManaCost:4 G Types:Enchantment K:Cumulative upkeep:1 T:Mode$ PayCumulativeUpkeep | ValidCard$ Card.Self | Paid$ True | Execute$ TrigSearch | OptionalDecider$ You | TriggerDescription$ Whenever you pay CARDNAME's cumulative upkeep, you may search your library for a creature card with converted mana cost equal to the number of age counters on CARDNAME and put it onto the battlefield. If you do, shuffle your library. -SVar:TrigSearch:AB$ ChangeZone | Cost$ 0 | ChangeType$ Creature.cmcEQX | References$ X | ChangeNum$ 1 | Origin$ Library | Destination$ Battlefield +SVar:TrigSearch:AB$ ChangeZone | Cost$ 0 | ChangeType$ Creature.cmcEQX | References$ X | ChangeNum$ 1 | Origin$ Library | Destination$ Battlefield | ShuffleNonMandatory$ True SVar:X:Count$CardCounters.AGE SVar:Picture:http://www.wizards.com/global/images/magic/general/hibernations_end.jpg Oracle:Cumulative upkeep {1} (At the beginning of your upkeep, put an age counter on this permanent, then sacrifice it unless you pay its upkeep cost for each age counter on it.)\nWhenever you pay Hibernation's End's cumulative upkeep, you may search your library for a creature card with converted mana cost equal to the number of age counters on Hibernation's End and put it onto the battlefield. If you do, shuffle your library. diff --git a/res/cardsfolder/h/higure_the_still_wind.txt b/res/cardsfolder/h/higure_the_still_wind.txt index 67e477a555a..a594ef1a0fe 100644 --- a/res/cardsfolder/h/higure_the_still_wind.txt +++ b/res/cardsfolder/h/higure_the_still_wind.txt @@ -4,7 +4,7 @@ Types:Legendary Creature Human Ninja PT:3/4 A:AB$ ChangeZone | Cost$ 2 U U Return<1/Creature.attacking+unblocked> | CostDesc$ Ninjutsu 2 U U | ActivationZone$ Hand | Origin$ Hand | Ninjutsu$ True | Destination$ Battlefield | Defined$ Self | SpellDescription$ (2 U U, Return an unblocked attacker you control to hand: Put this card onto the battlefield from your hand tapped and attacking.) T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Opponent | Execute$ TrigSearch | OptionalDecider$ You | CombatDamage$ True | TriggerDescription$ Whenever CARDNAME 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. -SVar:TrigSearch:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Ninja | ChangeNum$ 1 +SVar:TrigSearch:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Ninja | ChangeNum$ 1 | ShuffleNonMandatory$ True A:AB$ Pump | Cost$ 2 | ValidTgts$ Creature.Ninja | KW$ HIDDEN Unblockable | SpellDescription$ Target Ninja creature is unblockable this turn. | TgtPrompt$ Select target Ninja creature SVar:Picture:http://www.wizards.com/global/images/magic/general/higure_the_still_wind.jpg Oracle: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.)\nWhenever Higure, the Still Wind 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.\n{2}: Target Ninja creature is unblockable this turn. diff --git a/res/cardsfolder/h/hoarding_dragon.txt b/res/cardsfolder/h/hoarding_dragon.txt index 454cd0c4be5..99f837b1456 100644 --- a/res/cardsfolder/h/hoarding_dragon.txt +++ b/res/cardsfolder/h/hoarding_dragon.txt @@ -4,7 +4,7 @@ Types:Creature Dragon PT:4/4 K:Flying T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for an artifact card, exile it, then shuffle your library. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Exile | ChangeType$ Artifact | ChangeNum$ 1 | RememberChanged$ True +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Exile | ChangeType$ Artifact | ChangeNum$ 1 | RememberChanged$ True | ShuffleNonMandatory$ True T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigReturn | OptionalDecider$ TriggeredCardController | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME dies, you may put the exiled card into its owner's hand. SVar:TrigReturn:DB$ChangeZone | Cost$ 0 | Defined$ Remembered | Origin$ Exile | Destination$ Hand SVar:Picture:http://www.wizards.com/global/images/magic/general/hoarding_dragon.jpg diff --git a/res/cardsfolder/h/howling_wolf.txt b/res/cardsfolder/h/howling_wolf.txt index f04d8f7ed69..e4f8a58aade 100644 --- a/res/cardsfolder/h/howling_wolf.txt +++ b/res/cardsfolder/h/howling_wolf.txt @@ -3,7 +3,7 @@ ManaCost:2 G G Types:Creature Wolf PT:2/2 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for up to three cards named CARDNAME, reveal them, and put them into your hand. If you do, shuffle your library. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Card.namedHowling Wolf | ChangeNum$ 3 +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Card.namedHowling Wolf | ChangeNum$ 3 | ShuffleNonMandatory$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/howling_wolf.jpg Oracle: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. SetInfo:MMQ Common \ No newline at end of file diff --git a/res/cardsfolder/i/imperial_hellkite.txt b/res/cardsfolder/i/imperial_hellkite.txt index 391c16ce983..9a2e992baa3 100644 --- a/res/cardsfolder/i/imperial_hellkite.txt +++ b/res/cardsfolder/i/imperial_hellkite.txt @@ -5,7 +5,7 @@ PT:6/6 K:Flying K:Morph:6 R R T:Mode$ TurnFaceUp | ValidCard$ Card.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerZones$ Battlefield | TriggerDescription$ When CARDNAME 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. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Dragon | ChangeNum$ 1 +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Dragon | ChangeNum$ 1 | ShuffleNonMandatory$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/imperial_hellkite.jpg Oracle:Flying\nMorph {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.)\nWhen 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. SetInfo:ARC Rare diff --git a/res/cardsfolder/i/iname_as_one.txt b/res/cardsfolder/i/iname_as_one.txt index d4240022f71..01b3c99ca9f 100644 --- a/res/cardsfolder/i/iname_as_one.txt +++ b/res/cardsfolder/i/iname_as_one.txt @@ -3,7 +3,7 @@ ManaCost:8 B B G G Types:Legendary Creature Spirit PT:8/8 T:Mode$ ChangesZone | ValidCard$ Card.wasCastFromHand+Self | Destination$ Battlefield | Execute$ TrigSearch | OptionalDecider$ You | TriggerDescription$ When CARDNAME 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. -SVar:TrigSearch:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Battlefield | ChangeType$ Spirit.YouCtrl | ChangeNum$ 1 +SVar:TrigSearch:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Battlefield | ChangeType$ Spirit.YouCtrl | ChangeNum$ 1 | ShuffleNonMandatory$ True T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Battlefield | Destination$ Graveyard | Execute$ TrigExile | OptionalDecider$ TriggeredCardController | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME dies, you may exile it. If you do, return target Spirit permanent card from your graveyard to the battlefield. SVar:TrigExile:AB$ChangeZone | Cost$ 0 | Origin$ Graveyard | Destination$ Exile | ValidCard$ Card.Self | SubAbility$ DBReturn SVar:DBReturn:DB$ChangeZone | Origin$ Graveyard | Destination$ Battlefield | Hidden$ True | ChangeType$ Spirit.YouCtrl | ChangeNum$ 1 diff --git a/res/cardsfolder/i/iname_death_aspect.txt b/res/cardsfolder/i/iname_death_aspect.txt index 70c481ccc1f..b70b8bb8443 100644 --- a/res/cardsfolder/i/iname_death_aspect.txt +++ b/res/cardsfolder/i/iname_death_aspect.txt @@ -3,7 +3,7 @@ ManaCost:4 B B Types:Legendary Creature Spirit PT:4/4 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChangeZone | OptionalDecider$ You | TriggerDescription$ When CARDNAME 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. -SVar:TrigChangeZone:AB$ ChangeZone | Cost$ 0 | ChangeType$ Spirit.YouCtrl | Origin$ Library | Destination$ Graveyard | ChangeNum$ X | Shuffle$ True | References$ X +SVar:TrigChangeZone:AB$ ChangeZone | Cost$ 0 | ChangeType$ Spirit.YouCtrl | Origin$ Library | Destination$ Graveyard | ChangeNum$ X | Shuffle$ True | References$ X | ShuffleNonMandatory$ True SVar:X:Count$TypeInYourLibrary.Spirit SVar:RemAIDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/iname_death_aspect.jpg diff --git a/res/cardsfolder/l/land_tax.txt b/res/cardsfolder/l/land_tax.txt index 30cdaca544f..16f85f6bed1 100644 --- a/res/cardsfolder/l/land_tax.txt +++ b/res/cardsfolder/l/land_tax.txt @@ -2,7 +2,7 @@ Name:Land Tax ManaCost:W Types:Enchantment T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigChange | IsPresent$ Land.OppCtrl | PresentCompare$ GTX | TriggerDescription$ 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. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Land.Basic | ChangeNum$ 3 +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Land.Basic | ChangeNum$ 3 | ShuffleNonMandatory$ True SVar:X:Count$Valid Land.YouCtrl SVar:Picture:http://www.wizards.com/global/images/magic/general/land_tax.jpg Oracle: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. diff --git a/res/cardsfolder/l/lost_auramancers.txt b/res/cardsfolder/l/lost_auramancers.txt index 52979a76cbd..dd092ef795a 100644 --- a/res/cardsfolder/l/lost_auramancers.txt +++ b/res/cardsfolder/l/lost_auramancers.txt @@ -3,7 +3,7 @@ ManaCost:2 W W Types:Creature Human Wizard PT:3/3 T:Mode$ ChangesZone | ValidCard$ Card.Self+counters_EQ0_TIME | Origin$ Battlefield | Destination$ Graveyard | Execute$ DBReturn | OptionalDecider$ TriggeredCardController | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME dies, if it had no time counters on it, you may search your library for an enchantment card and put it onto the battlefield. If you do, shuffle your library. -SVar:DBReturn:DB$ChangeZone | Origin$ Library | Destination$ Battlefield | ChangeType$ Enchantment.YouOwn | ChangeNum$ 1 +SVar:DBReturn:DB$ChangeZone | Origin$ Library | Destination$ Battlefield | ChangeType$ Enchantment.YouOwn | ChangeNum$ 1 | ShuffleNonMandatory$ True K:Vanishing:3 SVar:RemRandomDeck:True DeckNeeds:Type$Enchantment diff --git a/res/cardsfolder/m/mindlock_orb.txt b/res/cardsfolder/m/mindlock_orb.txt new file mode 100644 index 00000000000..0b0aa1048ff --- /dev/null +++ b/res/cardsfolder/m/mindlock_orb.txt @@ -0,0 +1,6 @@ +Name:Mindlock Orb +ManaCost:3 U +Types:Artifact +S:Mode$ Continuous | Affected$ Player | AddKeyword$ CantSearchLibrary | Description$ Players can't search libraries. +SVar:Picture:http://www.wizards.com/global/images/magic/general/mindlock_orb.jpg +Oracle:Players can't search libraries. diff --git a/res/cardsfolder/m/mishra_artificer_prodigy.txt b/res/cardsfolder/m/mishra_artificer_prodigy.txt index 86eeb406b8a..e75a0d00e04 100644 --- a/res/cardsfolder/m/mishra_artificer_prodigy.txt +++ b/res/cardsfolder/m/mishra_artificer_prodigy.txt @@ -3,7 +3,7 @@ ManaCost:1 U B R Types:Legendary Creature Human Artificer PT:4/4 T:Mode$ SpellCast | ValidCard$ Artifact | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigChangeZone | TriggerDescription$ Whenever you cast an artifact spell, you may search your graveyard, hand, and/or library for a card with the same name as that spell and put it onto the battlefield. If you search your library this way, shuffle it. -SVar:TrigChangeZone:DB$ ChangeZone | Hidden$ True | Origin$ Library | OriginChoice$ True | OriginAlternative$ Graveyard,Hand | AlternativeMessage$ Would you like to search your library with this ability? If you do, your library will be shuffled. | Destination$ Battlefield | ChangeType$ Triggered.sameName +SVar:TrigChangeZone:DB$ ChangeZone | Hidden$ True | Origin$ Library | OriginChoice$ True | OriginAlternative$ Graveyard,Hand | AlternativeMessage$ Would you like to search your library with this ability? If you do, your library will be shuffled. | Destination$ Battlefield | ChangeType$ Triggered.sameName | ShuffleNonMandatory$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/mishra_artificer_prodigy.jpg Oracle:Whenever you cast an artifact spell, you may search your graveyard, hand, and/or library for a card with the same name as that spell and put it onto the battlefield. If you search your library this way, shuffle it. SetInfo:TSP Rare \ No newline at end of file diff --git a/res/cardsfolder/m/momir_vig_simic_visionary.txt b/res/cardsfolder/m/momir_vig_simic_visionary.txt index 3ae92edc5fc..7dc543387c8 100644 --- a/res/cardsfolder/m/momir_vig_simic_visionary.txt +++ b/res/cardsfolder/m/momir_vig_simic_visionary.txt @@ -3,7 +3,7 @@ ManaCost:3 G U Types:Legendary Creature Elf Wizard PT:2/2 T:Mode$ SpellCast | ValidCard$ Creature.Green | ValidActivatingPlayer$ You | OptionalDecider$ You | TriggerZones$ Battlefield | Execute$ TrigChange | TriggerDescription$ Whenever you cast a green creature spell, you may search your library for a creature card and reveal it. If you do, shuffle your library and put that card on top of it. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Library | LibraryPosition$ 0 | ChangeType$ Creature | ChangeNum$ 1 +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Library | LibraryPosition$ 0 | ChangeType$ Creature | ChangeNum$ 1 | ShuffleNonMandatory$ True T:Mode$ SpellCast | ValidCard$ Creature.Blue | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDig | TriggerDescription$ Whenever you cast a blue creature spell, reveal the top card of your library. If it's a creature card, put that card into your hand. SVar:TrigDig:AB$Dig | Cost$ 0 | DigNum$ 1 | Reveal$ True | ChangeNum$ All | ChangeValid$ Creature | LibraryPosition2$ 0 SVar:Picture:http://www.wizards.com/global/images/magic/general/momir_vig_simic_visionary.jpg diff --git a/res/cardsfolder/n/nesting_wurm.txt b/res/cardsfolder/n/nesting_wurm.txt index 5ceb2f1bcdc..41c5020fd7c 100644 --- a/res/cardsfolder/n/nesting_wurm.txt +++ b/res/cardsfolder/n/nesting_wurm.txt @@ -4,7 +4,7 @@ Types:Creature Wurm PT:4/3 K:Trample T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for up to three cards named CARDNAME, reveal them, and put them into your hand. If you do, shuffle your library. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Card.namedNesting Wurm | ChangeNum$ 3 +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Card.namedNesting Wurm | ChangeNum$ 3 | ShuffleNonMandatory$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/nesting_wurm.jpg Oracle:Trample\nWhen Nesting Wurm enters the battlefield, you may search your library for up to three cards named Nesting Wurm, reveal them, and put them into your hand. If you do, shuffle your library. SetInfo:NMS Uncommon \ No newline at end of file diff --git a/res/cardsfolder/p/pattern_of_rebirth.txt b/res/cardsfolder/p/pattern_of_rebirth.txt index 1c6ce49d8ec..8cc0c7698c1 100644 --- a/res/cardsfolder/p/pattern_of_rebirth.txt +++ b/res/cardsfolder/p/pattern_of_rebirth.txt @@ -4,7 +4,7 @@ Types:Enchantment Aura K:Enchant creature A:SP$ Attach | Cost$ 3 G | ValidTgts$ Creature | AILogic$ Pump T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.AttachedBy | Execute$ TrigSearch | TriggerDescription$ When enchanted creature dies, that creature's controller may search his or her library for a creature card and put that card onto the battlefield. If that player does, he or she shuffles his or her library. -SVar:TrigSearch:AB$ChangeZone | Optional$ True | Cost$ 0 | DefinedPlayer$ TriggeredCardController | ChangeType$ Creature | ChangeNum$ 1 | Hidden$ True | Origin$ Library | Destination$ Battlefield | Shuffle$ True +SVar:TrigSearch:AB$ChangeZone | Optional$ True | Cost$ 0 | DefinedPlayer$ TriggeredCardController | ChangeType$ Creature | ChangeNum$ 1 | Hidden$ True | Origin$ Library | Destination$ Battlefield | ShuffleNonMandatory$ True S:Mode$ Continuous | Affected$ Creature.AttachedBy | AddSVar$ Sac SVar:Sac:SVar:SacMe:5 SVar:Picture:http://www.wizards.com/global/images/magic/general/pattern_of_rebirth.jpg diff --git a/res/cardsfolder/q/quirion_trailblazer.txt b/res/cardsfolder/q/quirion_trailblazer.txt index 483850a08ff..683dc3cdf3e 100644 --- a/res/cardsfolder/q/quirion_trailblazer.txt +++ b/res/cardsfolder/q/quirion_trailblazer.txt @@ -3,7 +3,7 @@ ManaCost:3 G Types:Creature Elf Scout PT:1/2 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for a basic land card and put that card onto the battlefield tapped. If you do, shuffle your library. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Battlefield | ChangeType$ Land.Basic | ChangeNum$ 1 | Tapped$ True +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Battlefield | ChangeType$ Land.Basic | ChangeNum$ 1 | Tapped$ True | ShuffleNonMandatory$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/quirion_trailblazer.jpg Oracle:When Quirion Trailblazer enters the battlefield, you may search your library for a basic land card and put that card onto the battlefield tapped. If you do, shuffle your library. SetInfo:INV Common \ No newline at end of file diff --git a/res/cardsfolder/r/ranger_of_eos.txt b/res/cardsfolder/r/ranger_of_eos.txt index 6b983e4d348..182826d934d 100644 --- a/res/cardsfolder/r/ranger_of_eos.txt +++ b/res/cardsfolder/r/ranger_of_eos.txt @@ -2,7 +2,7 @@ Name:Ranger of Eos ManaCost:3 W Types:Creature Human Soldier T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for up to two creature cards with converted mana cost 1 or less, reveal them, and put them into your hand. If you do, shuffle your library. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Creature.cmcLE1 | ChangeNum$ 2 +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Creature.cmcLE1 | ChangeNum$ 2 | ShuffleNonMandatory$ True PT:3/2 SVar:Picture:http://www.wizards.com/global/images/magic/general/ranger_of_eos.jpg Oracle:When Ranger of Eos enters the battlefield, you may search your library for up to two creature cards with converted mana cost 1 or less, reveal them, and put them into your hand. If you do, shuffle your library. diff --git a/res/cardsfolder/r/ratcatcher.txt b/res/cardsfolder/r/ratcatcher.txt index 276e67175f8..dd5c5835648 100644 --- a/res/cardsfolder/r/ratcatcher.txt +++ b/res/cardsfolder/r/ratcatcher.txt @@ -5,7 +5,7 @@ Text: PT:4/4 K:Fear T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigChange | TriggerDescription$ At the beginning of your upkeep, you may search your library for a Rat card, reveal it, and put it into your hand. If you do, shuffle your library. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Card.Rat | ChangeNum$ 1 +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Card.Rat | ChangeNum$ 1 | ShuffleNonMandatory$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/ratcatcher.jpg Oracle:Fear (This creature can't be blocked except by artifact creatures and/or black creatures.)\nAt the beginning of your upkeep, you may search your library for a Rat card, reveal it, and put it into your hand. If you do, shuffle your library. SetInfo:DIS Rare \ No newline at end of file diff --git a/res/cardsfolder/r/remembrance.txt b/res/cardsfolder/r/remembrance.txt index 570b97f9a31..9a6aa9a3088 100644 --- a/res/cardsfolder/r/remembrance.txt +++ b/res/cardsfolder/r/remembrance.txt @@ -2,7 +2,7 @@ Name:Remembrance ManaCost:3 W Types:Enchantment T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.nonToken+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigChangeZone | TriggerDescription$ Whenever a nontoken creature you control dies, you may search your library for a card with the same name as that creature, reveal it, and put it into your hand. If you do, shuffle your library. -SVar:TrigChangeZone:DB$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Triggered.sameName +SVar:TrigChangeZone:DB$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Triggered.sameName | ShuffleNonMandatory$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/remembrance.jpg Oracle:Whenever a nontoken creature you control dies, you may search your library for a card with the same name as that creature, reveal it, and put it into your hand. If you do, shuffle your library. SetInfo:USG Rare \ No newline at end of file diff --git a/res/cardsfolder/s/screaming_seahawk.txt b/res/cardsfolder/s/screaming_seahawk.txt index d1585e56bf0..e96bfe4f3ce 100644 --- a/res/cardsfolder/s/screaming_seahawk.txt +++ b/res/cardsfolder/s/screaming_seahawk.txt @@ -4,7 +4,7 @@ Types:Creature Bird PT:2/2 K:Flying T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | OptionalDecider$ You | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for a card named CARDNAME, reveal it, and put it into your hand. If you do, shuffle your library. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Card.namedScreaming Seahawk | ChangeNum$ 1 +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Card.namedScreaming Seahawk | ChangeNum$ 1 | ShuffleNonMandatory$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/screaming_seahawk.jpg Oracle:Flying\nWhen Screaming Seahawk enters the battlefield, you may search your library for a card named Screaming Seahawk, reveal it, and put it into your hand. If you do, shuffle your library. SetInfo:ONS Common \ No newline at end of file diff --git a/res/cardsfolder/s/seedguide_ash.txt b/res/cardsfolder/s/seedguide_ash.txt index 50e9bf70ba6..09ef3bde8cd 100644 --- a/res/cardsfolder/s/seedguide_ash.txt +++ b/res/cardsfolder/s/seedguide_ash.txt @@ -3,7 +3,7 @@ ManaCost:4 G Types:Creature Treefolk Druid PT:4/4 T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | TriggerZones$ Graveyard | Execute$ TrigChange | OptionalDecider$ TriggeredCardController | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME is put into a graveyard from the battlefield, you may search your library for up to three Forest cards and put them onto the battlefield tapped. If you do, shuffle your library. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Battlefield | ChangeType$ Forest | Tapped$ True | ChangeNum$ 3 +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Battlefield | ChangeType$ Forest | Tapped$ True | ChangeNum$ 3 | ShuffleNonMandatory$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/seedguide_ash.jpg Oracle:When Seedguide Ash dies, you may search your library for up to three Forest cards and put them onto the battlefield tapped. If you do, shuffle your library. SetInfo:LRW Uncommon \ No newline at end of file diff --git a/res/cardsfolder/s/shadow_of_doubt.txt b/res/cardsfolder/s/shadow_of_doubt.txt new file mode 100644 index 00000000000..6f9deff4e67 --- /dev/null +++ b/res/cardsfolder/s/shadow_of_doubt.txt @@ -0,0 +1,9 @@ +Name:Shadow of Doubt +ManaCost:UB UB +Types:Instant +A:SP$ Effect | Cost$ UB UB | StaticAbilities$ STCantSearch | SubAbility$ DBDraw | SpellDesciption$ Players can't search libraries this turn. Draw a card. +SVar:STCantSearch:Mode$ Continuous | Affected$ Player | EffectZone$ Command | AddKeyword$ CantSearchLibrary | Description$ Players can't search libraries. +SVar:DBDraw:DB$ Draw | NumCards$ 1 +SVar:RemAIDeck:True +SVar:Picture:http://www.wizards.com/global/images/magic/general/shadow_of_doubt.jpg +Oracle:({U/B} can be paid with either {U} or {B}.)\nPlayers can't search libraries this turn.\nDraw a card. diff --git a/res/cardsfolder/s/silverglade_elemental.txt b/res/cardsfolder/s/silverglade_elemental.txt index 6587b317d66..7acb982f7ba 100644 --- a/res/cardsfolder/s/silverglade_elemental.txt +++ b/res/cardsfolder/s/silverglade_elemental.txt @@ -3,7 +3,7 @@ ManaCost:4 G Types:Creature Elemental PT:4/4 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | OptionalDecider$ You | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for a Forest card and put that card onto the battlefield. If you do, shuffle your library. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Battlefield | ChangeType$ Card.Forest | ChangeNum$ 1 +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Battlefield | ChangeType$ Card.Forest | ChangeNum$ 1 | ShuffleNonMandatory$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/silverglade_elemental.jpg Oracle:When Silverglade Elemental enters the battlefield, you may search your library for a Forest card and put that card onto the battlefield. If you do, shuffle your library. SetInfo:MMQ Common diff --git a/res/cardsfolder/s/skyshroud_sentinel.txt b/res/cardsfolder/s/skyshroud_sentinel.txt index 0febc12806b..eea2fcfd06a 100644 --- a/res/cardsfolder/s/skyshroud_sentinel.txt +++ b/res/cardsfolder/s/skyshroud_sentinel.txt @@ -3,7 +3,7 @@ ManaCost:2 G Types:Creature Elf PT:1/1 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for up to three cards named CARDNAME, reveal them, and put them into your hand. If you do, shuffle your library. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Card.namedSkyshroud Sentinel | ChangeNum$ 3 +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Card.namedSkyshroud Sentinel | ChangeNum$ 3 | ShuffleNonMandatory$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/skyshroud_sentinel.jpg Oracle:When Skyshroud Sentinel enters the battlefield, you may search your library for up to three cards named Skyshroud Sentinel, reveal them, and put them into your hand. If you do, shuffle your library. SetInfo:NMS Common \ No newline at end of file diff --git a/res/cardsfolder/s/solemn_simulacrum.txt b/res/cardsfolder/s/solemn_simulacrum.txt index ccac67a41da..c7ef34c9b99 100644 --- a/res/cardsfolder/s/solemn_simulacrum.txt +++ b/res/cardsfolder/s/solemn_simulacrum.txt @@ -2,8 +2,8 @@ Name:Solemn Simulacrum ManaCost:4 Types:Artifact Creature Golem PT:2/2 -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for a basic land card and put that card onto the battlefield tapped. If you do, shuffle your library. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Battlefield | Tapped$ True | ChangeType$ Land.Basic | ChangeNum$ 1 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for a basic land card, put that card onto the battlefield tapped, then shuffle your library. +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Battlefield | Tapped$ True | ChangeType$ Land.Basic | ChangeNum$ 1 | ShuffleNonMandatory$ True T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigDraw | OptionalDecider$ TriggeredCardController | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME is put into a graveyard from the battlefield, you may draw a card. SVar:TrigDraw:AB$Draw | Cost$ 0 | Defined$ TriggeredCardController | NumCards$ 1 SVar:SacMe:1 diff --git a/res/cardsfolder/s/sphinx_summoner.txt b/res/cardsfolder/s/sphinx_summoner.txt index 68646b0abf7..4bdbe128ff0 100644 --- a/res/cardsfolder/s/sphinx_summoner.txt +++ b/res/cardsfolder/s/sphinx_summoner.txt @@ -4,7 +4,7 @@ Types:Artifact Creature Sphinx PT:3/3 K:Flying T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for an artifact creature card, reveal it, and put it into your hand. If you do, shuffle your library. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Artifact.Creature| ChangeNum$ 1 +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Artifact.Creature| ChangeNum$ 1 | ShuffleNonMandatory$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/sphinx_summoner.jpg Oracle:Flying\nWhen Sphinx Summoner enters the battlefield, you may search your library for an artifact creature card, reveal it, and put it into your hand. If you do, shuffle your library. SetInfo:CFX Rare \ No newline at end of file diff --git a/res/cardsfolder/s/squadron_hawk.txt b/res/cardsfolder/s/squadron_hawk.txt index 06e8156eb62..1bd65547025 100644 --- a/res/cardsfolder/s/squadron_hawk.txt +++ b/res/cardsfolder/s/squadron_hawk.txt @@ -4,7 +4,7 @@ Types:Creature Bird PT:1/1 K:Flying T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for up to three cards named CARDNAME, reveal them, and put them into your hand. If you do, shuffle your library. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Card.namedSquadron Hawk | ChangeNum$ 3 +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Card.namedSquadron Hawk | ChangeNum$ 3 | ShuffleNonMandatory$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/squadron_hawk.jpg Oracle:Flying\nWhen Squadron 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. SetInfo:M11 Common \ No newline at end of file diff --git a/res/cardsfolder/t/tallowisp.txt b/res/cardsfolder/t/tallowisp.txt index ff528533129..a7cfe58947b 100644 --- a/res/cardsfolder/t/tallowisp.txt +++ b/res/cardsfolder/t/tallowisp.txt @@ -3,7 +3,7 @@ ManaCost:1 W Types:Creature Spirit PT:1/3 T:Mode$ SpellCast | ValidCard$ Spirit,Arcane | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigSearch | TriggerDescription$ Whenever you cast a Spirit or Arcane spell, you may search your library for an Aura card with enchant creature, reveal it, and put it into your hand. If you do, shuffle your library. -SVar:TrigSearch:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Aura.withEnchant creature | ChangeNum$ 1 | Shuffle$ True +SVar:TrigSearch:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Aura.withEnchant creature | ChangeNum$ 1 | Shuffle$ True | ShuffleNonMandatory$ True SVar:BuffedBy:Arcane,Spirit SVar:Picture:http://www.wizards.com/global/images/magic/general/tallowisp.jpg Oracle:Whenever you cast a Spirit or Arcane spell, you may search your library for an Aura card with enchant creature, reveal it, and put it into your hand. If you do, shuffle your library. diff --git a/res/cardsfolder/t/treasure_mage.txt b/res/cardsfolder/t/treasure_mage.txt index 70d6869ceca..cbe2c771c9c 100644 --- a/res/cardsfolder/t/treasure_mage.txt +++ b/res/cardsfolder/t/treasure_mage.txt @@ -3,7 +3,7 @@ ManaCost:2 U Types:Creature Human Wizard PT:2/2 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for an artifact card with converted mana cost 6 or greater, reveal that card, and put it into your hand. If you do, shuffle your library. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Artifact.cmcGE6 | ChangeNum$ 1 +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Artifact.cmcGE6 | ChangeNum$ 1 | ShuffleNonMandatory$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/treasure_mage.jpg Oracle:When Treasure Mage enters the battlefield, you may search your library for an artifact card with converted mana cost 6 or greater, reveal that card, and put it into your hand. If you do, shuffle your library. SetInfo:MBS Uncommon \ No newline at end of file diff --git a/res/cardsfolder/t/trench_gorger.txt b/res/cardsfolder/t/trench_gorger.txt index 623cc4baf99..63eba1026de 100644 --- a/res/cardsfolder/t/trench_gorger.txt +++ b/res/cardsfolder/t/trench_gorger.txt @@ -4,7 +4,7 @@ Types:Creature Leviathan PT:6/6 K:Trample T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | OptionalDecider$ You | Execute$ TrigChangeZone | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for any number of land cards, exile them, then shuffle your library. If you do, Trench Gorger's power and toughness each become equal to the number of cards exiled this way. -SVar:TrigChangeZone:DB$ ChangeZone | Origin$ Library | Destination$ Exile | ChangeType$ Land | ChangeNum$ X | References$ X | RememberChanged$ True | SubAbility$ TrenchAnimate +SVar:TrigChangeZone:DB$ ChangeZone | Origin$ Library | Destination$ Exile | ChangeType$ Land | ChangeNum$ X | References$ X | RememberChanged$ True | SubAbility$ TrenchAnimate | ShuffleNonMandatory$ Trues SVar:TrenchAnimate:DB$Animate | Power$ Y | Toughness$ Y | References$ Y | Permanent$ True | SubAbility$ DBCleanUp SVar:DBCleanUp:DB$ Cleanup | ClearRemembered$ True SVar:X:Count$TypeInYourLibrary.Land diff --git a/res/cardsfolder/t/trinket_mage.txt b/res/cardsfolder/t/trinket_mage.txt index 60d037361e2..c9a9351fa54 100644 --- a/res/cardsfolder/t/trinket_mage.txt +++ b/res/cardsfolder/t/trinket_mage.txt @@ -3,7 +3,7 @@ ManaCost:2 U Types:Creature Human Wizard PT:2/2 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for an artifact card with converted mana cost 1 or less, reveal that card, and put it into your hand. If you do, shuffle your library. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Artifact.cmcLE1 | ChangeNum$ 1 +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Artifact.cmcLE1 | ChangeNum$ 1 | ShuffleNonMandatory$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/trinket_mage.jpg Oracle:When Trinket Mage enters the battlefield, you may search your library for an artifact card with converted mana cost 1 or less, reveal that card, and put it into your hand. If you do, shuffle your library. SetInfo:SOM Uncommon diff --git a/res/cardsfolder/v/verdant_succession.txt b/res/cardsfolder/v/verdant_succession.txt index ee705971a80..47ff2d3349f 100644 --- a/res/cardsfolder/v/verdant_succession.txt +++ b/res/cardsfolder/v/verdant_succession.txt @@ -2,7 +2,7 @@ Name:Verdant Succession ManaCost:4 G Types:Enchantment T:Mode$ ChangesZone | ValidCard$ Creature.Green+nonToken | Origin$ Battlefield | Destination$ Graveyard | TriggerZones$ Battlefield | Execute$ TrigSearch | TriggerDescription$ Whenever a green nontoken creature dies, that creature's controller may search his or her library for a card with the same name as that creature and put it onto the battlefield. If that player does, he or she shuffles his or her library. -SVar:TrigSearch:AB$ ChangeZone | Optional$ True | Cost$ 0 | DefinedPlayer$ TriggeredCardController | ChangeType$ Triggered.sameName | ChangeNum$ 1 | Origin$ Library | Destination$ Battlefield | Hidden$ True | OptionalDecider$ You +SVar:TrigSearch:AB$ ChangeZone | Optional$ True | Cost$ 0 | DefinedPlayer$ TriggeredCardController | ChangeType$ Triggered.sameName | ChangeNum$ 1 | Origin$ Library | Destination$ Battlefield | Hidden$ True | OptionalDecider$ You | ShuffleNonMandatory$ True SVar:RemRandomDeck:True SVar:Picture:http://www.wizards.com/global/images/magic/general/verdant_succession.jpg Oracle:Whenever a green nontoken creature dies, that creature's controller may search his or her library for a card with the same name as that creature and put it onto the battlefield. If that player does, he or she shuffles his or her library. diff --git a/res/cardsfolder/w/wild_pair.txt b/res/cardsfolder/w/wild_pair.txt index 39ca22e34e6..38233d38f93 100644 --- a/res/cardsfolder/w/wild_pair.txt +++ b/res/cardsfolder/w/wild_pair.txt @@ -2,7 +2,7 @@ Name:Wild Pair ManaCost:4 G G Types:Enchantment T:Mode$ ChangesZone | Destination$ Battlefield | ValidCard$ Creature.wasCastFromHand+YouCtrl | Execute$ TrigChange | TriggerZones$ Battlefield | OptionalDecider$ You | TriggerDescription$ Whenever a creature enters the battlefield, if you cast it from your hand, you may search your library for a creature card with the same total power and toughness and put it onto the battlefield. If you do, shuffle your library. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Battlefield | ChangeType$ Creature.totalPT_EQX | ChangeNum$ 1 +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Battlefield | ChangeType$ Creature.totalPT_EQX | ChangeNum$ 1 | ShuffleNonMandatory$ True SVar:X:TriggeredCard$CardSumPT SVar:Picture:http://www.wizards.com/global/images/magic/general/wild_pair.jpg Oracle:Whenever a creature enters the battlefield, if you cast it from your hand, you may search your library for a creature card with the same total power and toughness and put it onto the battlefield. If you do, shuffle your library. diff --git a/res/cardsfolder/y/yavimaya_dryad.txt b/res/cardsfolder/y/yavimaya_dryad.txt index 9d5cf5c3d82..be20d79d47c 100644 --- a/res/cardsfolder/y/yavimaya_dryad.txt +++ b/res/cardsfolder/y/yavimaya_dryad.txt @@ -5,7 +5,7 @@ PT:2/1 K:Forestwalk T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigRamp | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for a Forest card and put it onto the battlefield tapped under target player's control. If you do, shuffle your library. SVar:TrigRamp:AB$ Pump | Cost$ 0 | ValidTgts$ Player | TgtPrompt$ Select target player to gain control of forest | SubAbility$ DBChangeZone -SVar:DBChangeZone:DB$ ChangeZone | Origin$ Library | Destination$ Battlefield | ChangeType$ Forest | ChangeNum$ 1 | GainControl$ True | NewController$ Targeted | Tapped$ True +SVar:DBChangeZone:DB$ ChangeZone | Origin$ Library | Destination$ Battlefield | ChangeType$ Forest | ChangeNum$ 1 | GainControl$ True | NewController$ Targeted | Tapped$ True | ShuffleNonMandatory$ True SVar:Picture:http://www.wizards.com/global/images/magic/general/yavimaya_dryad.jpg Oracle:Forestwalk\nWhen Yavimaya Dryad enters the battlefield, you may search your library for a Forest card and put it onto the battlefield tapped under target player's control. If you do, shuffle your library. SetInfo:ARC Uncommon diff --git a/res/cardsfolder/y/yavimaya_elder.txt b/res/cardsfolder/y/yavimaya_elder.txt index 8ca1fca3937..fb72cfc52e4 100644 --- a/res/cardsfolder/y/yavimaya_elder.txt +++ b/res/cardsfolder/y/yavimaya_elder.txt @@ -3,7 +3,7 @@ ManaCost:1 G G Types:Creature Human Druid PT:2/1 T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigFetch | OptionalDecider$ TriggeredCardController | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME is put into a graveyard from the battlefield, you may search your library for up to two basic land cards, reveal them, and put them into your hand. If you do, shuffle your library. -SVar:TrigFetch:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Land.Basic | ChangeNum$ 2 +SVar:TrigFetch:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Land.Basic | ChangeNum$ 2 | ShuffleNonMandatory$ True A:AB$ Draw | Cost$ 2 Sac<1/CARDNAME> | NumCards$ 1 | SpellDescription$ Draw a card. SVar:Picture:http://www.wizards.com/global/images/magic/general/yavimaya_elder.jpg Oracle:When Yavimaya Elder dies, you may search your library for up to two basic land cards, reveal them, and put them into your hand. If you do, shuffle your library.\n{2}, Sacrifice Yavimaya Elder: Draw a card. diff --git a/res/cardsfolder/z/zur_the_enchanter.txt b/res/cardsfolder/z/zur_the_enchanter.txt index 6d2a0fafabf..805c0535610 100644 --- a/res/cardsfolder/z/zur_the_enchanter.txt +++ b/res/cardsfolder/z/zur_the_enchanter.txt @@ -4,7 +4,7 @@ Types:Legendary Creature Human Wizard PT:1/4 K:Flying T:Mode$ Attacks | ValidCard$ Card.Self | OptionalDecider$ You | Execute$ TrigChange | TriggerDescription$ Whenever CARDNAME attacks, you may search your library for an enchantment card with converted mana cost 3 or less and put it onto the battlefield. If you do, shuffle your library. -SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Battlefield | ChangeType$ Enchantment.cmcLE3 | ChangeNum$ 1 +SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Battlefield | ChangeType$ Enchantment.cmcLE3 | ChangeNum$ 1 | ShuffleNonMandatory$ True SVar:HasAttackEffect:TRUE SVar:Picture:http://www.wizards.com/global/images/magic/general/zur_the_enchanter.jpg Oracle:Flying\nWhenever Zur the Enchanter attacks, you may search your library for an enchantment card with converted mana cost 3 or less and put it onto the battlefield. If you do, shuffle your library. diff --git a/src/main/java/forge/card/ability/ai/ChangeZoneAi.java b/src/main/java/forge/card/ability/ai/ChangeZoneAi.java index 73c2a8cd322..d771821a04d 100644 --- a/src/main/java/forge/card/ability/ai/ChangeZoneAi.java +++ b/src/main/java/forge/card/ability/ai/ChangeZoneAi.java @@ -1107,10 +1107,6 @@ public class ChangeZoneAi extends SpellAbilityAi { if (sa.hasParam("Origin")) { origin = ZoneType.listValueOf(sa.getParam("Origin")); } - - if(origin.contains(ZoneType.Library) && !sa.hasParam("NoLooking")) { - sa.getActivatingPlayer().incLibrarySearched(); - } String type = sa.getParam("ChangeType"); if (type == null) { @@ -1121,6 +1117,8 @@ public class ChangeZoneAi extends SpellAbilityAi { sa) : 1; List fetchList; + boolean shuffleMandatory = true; + boolean searchedLibrary = false; if (defined) { fetchList = new ArrayList(AbilityUtils.getDefinedCards(card, sa.getParam("Defined"), sa)); if (!sa.hasParam("ChangeNum")) { @@ -1132,15 +1130,30 @@ public class ChangeZoneAi extends SpellAbilityAi { fetchList = AbilityUtils.filterListByType(fetchList, type, sa); } else { fetchList = player.getCardsIn(origin); - if (origin.contains(ZoneType.Library) && ai.hasKeyword("LimitSearchLibrary") - && !sa.hasParam("NoLooking")) { + if (origin.contains(ZoneType.Library) && !sa.hasParam("NoLooking")) { + searchedLibrary = true; + if (ai.hasKeyword("LimitSearchLibrary")) { // Aven Mindcensor - fetchList.removeAll(player.getCardsIn(ZoneType.Library)); - final int fetchNum = Math.min(player.getCardsIn(ZoneType.Library).size(), 4); - fetchList.addAll(player.getCardsIn(ZoneType.Library, fetchNum)); + fetchList.removeAll(player.getCardsIn(ZoneType.Library)); + final int fetchNum = Math.min(player.getCardsIn(ZoneType.Library).size(), 4); + fetchList.addAll(player.getCardsIn(ZoneType.Library, fetchNum)); + if (fetchNum == 0) { + searchedLibrary = false; + } + } + if (ai.hasKeyword("CantSearchLibrary")) { + fetchList.removeAll(player.getCardsIn(ZoneType.Library)); + // "if you do/sb does, shuffle" is not mandatory, should has this param. + // "then shuffle" is mandatory + shuffleMandatory = !sa.hasParam("ShuffleNonMandatory"); + searchedLibrary = false; + } } fetchList = AbilityUtils.filterListByType(fetchList, type, sa); } + if (searchedLibrary && ai.equals(player)) { + ai.incLibrarySearched(); + } final ZoneType destination = ZoneType.smartValueOf(sa.getParam("Destination")); final List fetched = new ArrayList(); @@ -1278,7 +1291,7 @@ public class ChangeZoneAi extends SpellAbilityAi { } } - if (origin.contains(ZoneType.Library) && !defined && !"False".equals(sa.getParam("Shuffle"))) { + if (origin.contains(ZoneType.Library) && !defined && !"False".equals(sa.getParam("Shuffle")) && shuffleMandatory) { player.shuffle(); } diff --git a/src/main/java/forge/card/ability/ai/FightAi.java b/src/main/java/forge/card/ability/ai/FightAi.java index 14c4cf45929..acaeb2f1181 100644 --- a/src/main/java/forge/card/ability/ai/FightAi.java +++ b/src/main/java/forge/card/ability/ai/FightAi.java @@ -3,8 +3,6 @@ package forge.card.ability.ai; import java.util.List; import java.util.Random; -import com.google.common.base.Predicate; - import forge.Card; import forge.CardLists; import forge.card.ability.SpellAbilityAi; diff --git a/src/main/java/forge/card/ability/ai/PumpAi.java b/src/main/java/forge/card/ability/ai/PumpAi.java index 533fa6c5d1b..37861c2825c 100644 --- a/src/main/java/forge/card/ability/ai/PumpAi.java +++ b/src/main/java/forge/card/ability/ai/PumpAi.java @@ -4,8 +4,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import com.google.common.base.Predicate; - import forge.Card; import forge.CardLists; import forge.CardPredicates.Presets; diff --git a/src/main/java/forge/card/ability/effects/ChangeZoneAllEffect.java b/src/main/java/forge/card/ability/effects/ChangeZoneAllEffect.java index 3999f68a7e2..19e7a7a7cfe 100644 --- a/src/main/java/forge/card/ability/effects/ChangeZoneAllEffect.java +++ b/src/main/java/forge/card/ability/effects/ChangeZoneAllEffect.java @@ -51,13 +51,19 @@ public class ChangeZoneAllEffect extends SpellAbilityEffect { if ((tgtPlayers == null) || tgtPlayers.isEmpty() || sa.hasParam("UseAllOriginZones")) { cards = game.getCardsIn(origin); - } else if (sa.getActivatingPlayer().hasKeyword("LimitSearchLibrary") - && origin.contains(ZoneType.Library) && sa.hasParam("Search")) { - for (final Player p : tgtPlayers) { - cards.addAll(p.getCardsIn(origin)); - cards.removeAll(p.getCardsIn(ZoneType.Library)); - int fetchNum = Math.min(p.getCardsIn(ZoneType.Library).size(), 4); - cards.addAll(p.getCardsIn(ZoneType.Library, fetchNum)); + } else if (origin.contains(ZoneType.Library) && sa.hasParam("Search")) { + // Search library using changezoneall effect need a param "Search" + if (sa.getActivatingPlayer().hasKeyword("LimitSearchLibrary")) { + for (final Player p : tgtPlayers) { + cards.addAll(p.getCardsIn(origin)); + cards.removeAll(p.getCardsIn(ZoneType.Library)); + int fetchNum = Math.min(p.getCardsIn(ZoneType.Library).size(), 4); + cards.addAll(p.getCardsIn(ZoneType.Library, fetchNum)); + } + } + if (sa.getActivatingPlayer().hasKeyword("CantSearchLibrary")) { + // all these cards have "then that player shuffles", mandatory shuffle + cards.removeAll(game.getCardsIn(ZoneType.Library)); } } else { for (final Player p : tgtPlayers) { @@ -65,8 +71,12 @@ public class ChangeZoneAllEffect extends SpellAbilityEffect { } } - if (origin.contains(ZoneType.Library) && sa.hasParam("Search")) { + if (origin.contains(ZoneType.Library) && sa.hasParam("Search") && !sa.getActivatingPlayer().hasKeyword("CantSearchLibrary")) { List libCards = CardLists.getValidCards(cards, "Card.inZoneLibrary", sa.getActivatingPlayer(), sa.getSourceCard()); + List libCardsYouOwn = CardLists.filterControlledBy(libCards, sa.getActivatingPlayer()); + if (!libCardsYouOwn.isEmpty()) { // Only searching one's own library would fire Archive Trap's altcost + sa.getActivatingPlayer().incLibrarySearched(); + } sa.getActivatingPlayer().getController().reveal("Looking at the Library", libCards, ZoneType.Library, sa.getActivatingPlayer()); } cards = AbilityUtils.filterListByType(cards, sa.getParam("ChangeType"), sa); diff --git a/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java b/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java index 6ea28f22bf1..df75e1280cf 100644 --- a/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java +++ b/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java @@ -629,9 +629,6 @@ public class ChangeZoneEffect extends SpellAbilityEffect { origin = ZoneType.listValueOf(sa.getParam("Origin")); } - if(origin.contains(ZoneType.Library) && !sa.hasParam("NoLooking")) { - sa.getActivatingPlayer().incLibrarySearched(); - } ZoneType destination = ZoneType.smartValueOf(sa.getParam("Destination")); // this needs to be zero indexed. Top = 0, Third = 2 @@ -672,6 +669,8 @@ public class ChangeZoneEffect extends SpellAbilityEffect { } List fetchList; + boolean shuffleMandatory = true; + boolean searchedLibrary = false; if (defined) { fetchList = new ArrayList(AbilityUtils.getDefinedCards(card, sa.getParam("Defined"), sa)); if (!sa.hasParam("ChangeNum")) { @@ -682,16 +681,32 @@ public class ChangeZoneEffect extends SpellAbilityEffect { fetchList = game.getCardsIn(origin); } else { fetchList = player.getCardsIn(origin); - if (origin.contains(ZoneType.Library) && decider.hasKeyword("LimitSearchLibrary") - && !sa.hasParam("NoLooking")) {// Aven Mindcensor - fetchList.removeAll(player.getCardsIn(ZoneType.Library)); - final int fetchNum = Math.min(player.getCardsIn(ZoneType.Library).size(), 4); - fetchList.addAll(player.getCardsIn(ZoneType.Library, fetchNum)); + if (origin.contains(ZoneType.Library) && !sa.hasParam("NoLooking")) { + searchedLibrary = true; + if (decider.hasKeyword("LimitSearchLibrary")) { // Aven Mindcensor + fetchList.removeAll(player.getCardsIn(ZoneType.Library)); + final int fetchNum = Math.min(player.getCardsIn(ZoneType.Library).size(), 4); + if (fetchNum == 0) { + searchedLibrary = false; + }System.out.println(fetchNum); + fetchList.addAll(player.getCardsIn(ZoneType.Library, fetchNum)); + } + if (decider.hasKeyword("CantSearchLibrary")) { + fetchList.removeAll(player.getCardsIn(ZoneType.Library)); + // "if you do/sb does, shuffle" is not mandatory (usually a triggered ability), should has this param. + // "then shuffle" is mandatory + shuffleMandatory = !sa.hasParam("ShuffleNonMandatory"); + searchedLibrary = false; + } } } - + + if (searchedLibrary && decider.equals(player)) { // should only count the number of searching player's own library + decider.incLibrarySearched(); + } + if (!defined) { - if (origin.contains(ZoneType.Library) && !defined && !sa.hasParam("NoLooking")) { + if (origin.contains(ZoneType.Library) && !defined && !sa.hasParam("NoLooking") && !decider.hasKeyword("CantSearchLibrary")) { final int fetchNum = Math.min(player.getCardsIn(ZoneType.Library).size(), 4); List shown = !decider.hasKeyword("LimitSearchLibrary") ? player.getCardsIn(ZoneType.Library) : player.getCardsIn(ZoneType.Library, fetchNum); // Look at whole library before moving onto choosing a card @@ -889,7 +904,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect { decider.getController().reveal(card + " - Revealed card: ", movedCards, zt, player); } - if ((origin.contains(ZoneType.Library) && !destination.equals(ZoneType.Library) && !defined) + if ((origin.contains(ZoneType.Library) && !destination.equals(ZoneType.Library) && !defined && shuffleMandatory) || (sa.hasParam("Shuffle") && "True".equals(sa.getParam("Shuffle")))) { player.shuffle(); } diff --git a/src/main/java/forge/game/phase/CombatUtil.java b/src/main/java/forge/game/phase/CombatUtil.java index 1cd08ac6674..cc6c6c8ace2 100644 --- a/src/main/java/forge/game/phase/CombatUtil.java +++ b/src/main/java/forge/game/phase/CombatUtil.java @@ -50,7 +50,6 @@ import forge.game.combat.AttackingBand; import forge.game.player.Player; import forge.game.player.PlayerController.ManaPaymentPurpose; import forge.game.zone.ZoneType; -import forge.gui.GuiDialog; /** diff --git a/src/main/java/forge/game/player/Player.java b/src/main/java/forge/game/player/Player.java index 3346aadeb60..36789e2abfd 100644 --- a/src/main/java/forge/game/player/Player.java +++ b/src/main/java/forge/game/player/Player.java @@ -107,7 +107,7 @@ public class Player extends GameEntity implements Comparable { private int numPowerSurgeLands; /** The number of times this player has searched his library. */ - private int numLibrarySearched = 0; + private int numLibrarySearchedOwn = 0; /** The prowl. */ private ArrayList prowl = new ArrayList(); @@ -2229,14 +2229,14 @@ public class Player extends GameEntity implements Comparable { } public final void setLibrarySearched(final int l) { - this.numLibrarySearched = l; + this.numLibrarySearchedOwn = l; } public final int getLibrarySearched() { - return this.numLibrarySearched; + return this.numLibrarySearchedOwn; } public final void incLibrarySearched() { - this.numLibrarySearched++; + this.numLibrarySearchedOwn++; } /* diff --git a/src/main/java/forge/gui/GuiDialog.java b/src/main/java/forge/gui/GuiDialog.java index c9d6ed28de2..1cbb641df26 100644 --- a/src/main/java/forge/gui/GuiDialog.java +++ b/src/main/java/forge/gui/GuiDialog.java @@ -10,10 +10,7 @@ import org.apache.commons.lang3.StringUtils; import forge.Card; import forge.FThreads; -import forge.game.event.GameEventFlipCoin; -import forge.game.player.Player; import forge.gui.match.CMatchUI; -import forge.util.MyRandom; /** * Holds player interactions using standard windows