From 5d42bfa88ff21a00141e9231ea4e764c5be4d5db Mon Sep 17 00:00:00 2001 From: "solo81@web.de" Date: Tue, 17 Aug 2010 00:23:48 +0000 Subject: [PATCH] 1) Added a support for MANACOST CHANGING cards. (by Zethfox) Two example codes: [card] name=Alabaster Leech auto=lord(*[white]|myhand) white:+1 autoexile=all(*|myhand) resetcost autograveyard=all(*|myhand) resetcost autohand=all(*|myhand) resetcost autolibrary=all(*|myhand) resetcost text=White spells you cast cost {W} more to cast. mana={W} type=Creature subtype=Leech power=1 toughness=3 [/card] [card] name=Helm of Awakening auto=lord(*|myhand) colorless:-1 auto=lord(*|opponenthand) colorless:-1 autoexile=all(*|myhand) resetcost autograveyard=all(*|myhand) resetcost autohand=all(*|myhand) resetcost autolibrary=all(*|myhand) resetcost text=Spells cost {1} less to cast. mana={2} type=Artifact [/card] autoexile=all(*|myhand) resetcost autograveyard=all(*|myhand) resetcost autohand=all(*|myhand) resetcost autolibrary=all(*|myhand) resetcost ----> This code section is necessary, because manacost altering cards will keep their effect even when they have left the battlefield. RESETCOST erases all alterations which have no existing source on the battlefield anymore. 2) Added the new keyword TRANSFORM, which is similar to BECOMES. The main difference is that you can change single parameters of a permanent (color,type,...). Example codes: [card] name=Memnarch auto={1}{U}{U}:target(*) transforms(artifact) auto={3}{U}:moveTo(myBattlefield) target(arifact) text={1}{U}{U}: Target permanent becomes an artifact in addition to its other types. (This effect lasts indefinitely.) -- {3}{U}: Gain control of target artifact. (This effect lasts indefinitely.) mana={7} type=Legendary Artifact Creature subtype=Wizard power=4 toughness=5 [/card] [card] name=Dralnu's Crusade auto=lord(goblin) 1/1 auto=lord(goblin) transforms(zombie,black) text=Goblin creatures get +1/+1. -- All Goblins are black and are Zombies in addition to their other creature types. mana={1}{B}{R} type=Enchantment [/card] Important notes concerning TRANSFORM: - IF YOU TARGET A CREATURE THE EFFECT IS PERMINENT. - IF YOU TARGET THE SOURCE THE EFFECT IS UNTIL END OF TURN. - IF YOU USE LORD THE EFFECT LAST TIL PERMINENT SOURCE LEAVES PLAY. These restrictions will probably be changed in the near future! 3) Added 57 successfully tested cards. Card list ---> first comment 4) Changed the name of several tokens: "()" used to cuase crashes when used in the name-line. 5) Added the new keyword NONBATTLEZONE for leaves play trigger optimizing. It can be used to replace the phrase "EXILE,GRAVEYARD,HAND,LIBRARY". I will add tests for test suite in one of the next revisions!! ####### TEST SUITE PROVEN ######## --- projects/mtg/bin/Res/sets/ARB/_cards.dat | 2 +- projects/mtg/bin/Res/sets/CSP/_cards.dat | 2 +- projects/mtg/bin/Res/sets/DIS/_cards.dat | 4 +- projects/mtg/bin/Res/sets/FUT/_cards.dat | 6 +- projects/mtg/bin/Res/sets/M11/_cards.dat | 4 +- projects/mtg/bin/Res/sets/SOK/_cards.dat | 2 +- projects/mtg/bin/Res/sets/USG/_cards.dat | 2 +- projects/mtg/bin/Res/sets/ZEN/_cards.dat | 2 +- projects/mtg/bin/Res/sets/mtg_todo.dat | 413 ---------- projects/mtg/bin/Res/sets/primitives/mtg.txt | 776 ++++++++++++++++++- projects/mtg/include/AllAbilities.h | 139 +++- projects/mtg/include/CardPrimitive.h | 2 +- projects/mtg/src/MTGAbility.cpp | 122 ++- projects/mtg/src/MTGRules.cpp | 2 +- projects/mtg/src/TargetChooser.cpp | 16 + 15 files changed, 1025 insertions(+), 469 deletions(-) diff --git a/projects/mtg/bin/Res/sets/ARB/_cards.dat b/projects/mtg/bin/Res/sets/ARB/_cards.dat index 15b816e25..9db513007 100644 --- a/projects/mtg/bin/Res/sets/ARB/_cards.dat +++ b/projects/mtg/bin/Res/sets/ARB/_cards.dat @@ -149,7 +149,7 @@ id=189648 rarity=M [/card] [card] -primitive=Dragon (Dragon Broodmother) +primitive=Dragon Token from Dragon Broodmother id=22222220 rarity=T [/card] diff --git a/projects/mtg/bin/Res/sets/CSP/_cards.dat b/projects/mtg/bin/Res/sets/CSP/_cards.dat index d1081a2fc..39ff028f8 100644 --- a/projects/mtg/bin/Res/sets/CSP/_cards.dat +++ b/projects/mtg/bin/Res/sets/CSP/_cards.dat @@ -769,7 +769,7 @@ id=121230 rarity=R [/card] [card] -primitive=Wolf (Sound the Call) +primitive=Wolf Token from Sound the Call id=-121156 rarity=T [/card] diff --git a/projects/mtg/bin/Res/sets/DIS/_cards.dat b/projects/mtg/bin/Res/sets/DIS/_cards.dat index f3f51dbca..35f12f140 100644 --- a/projects/mtg/bin/Res/sets/DIS/_cards.dat +++ b/projects/mtg/bin/Res/sets/DIS/_cards.dat @@ -289,7 +289,7 @@ id=107542 rarity=C [/card] [card] -primitive=Goblin (Rakdos Guildmage) +primitive=Goblin Token from Rakdos Guildmage id=-97108 rarity=T [/card] @@ -769,7 +769,7 @@ id=111220 rarity=R [/card] [card] -primitive=Sprouting Phytohydra (Sprouting Phytohydra) +primitive=Sprouting Phytohydra Token from Sprouting Phytohydra id=-111220 rarity=C [/card] diff --git a/projects/mtg/bin/Res/sets/FUT/_cards.dat b/projects/mtg/bin/Res/sets/FUT/_cards.dat index a83f5cd55..2b3f4b2f5 100644 --- a/projects/mtg/bin/Res/sets/FUT/_cards.dat +++ b/projects/mtg/bin/Res/sets/FUT/_cards.dat @@ -274,7 +274,7 @@ id=136157 rarity=R [/card] [card] -primitive=Goldmeadow Harrier (Goldmeadow Lookout) +primitive=Goldmeadow Harrier Token from Goldmeadow Lookout id=-130311 rarity=T [/card] @@ -404,7 +404,7 @@ id=132213 rarity=C [/card] [card] -primitive=Llanowar Elves (Llanowar Mentor) +primitive=Llanowar Elves Token from Llanowar Mentor id=-126166 rarity=T [/card] @@ -749,7 +749,7 @@ id=126213 rarity=U [/card] [card] -primitive=Spark Elemental (Sparkspitter) +primitive=Spark Elemental Token from Sparkspitter id=-130341 rarity=T [/card] diff --git a/projects/mtg/bin/Res/sets/M11/_cards.dat b/projects/mtg/bin/Res/sets/M11/_cards.dat index 7fa1f00ce..1bbff4d95 100644 --- a/projects/mtg/bin/Res/sets/M11/_cards.dat +++ b/projects/mtg/bin/Res/sets/M11/_cards.dat @@ -824,12 +824,12 @@ id=205075 rarity=R [/card] [card] -primitive=Ooze (Mitotic Ooze) +primitive=Ooze Token from Mitotic Ooze id= rarity=T [/card] [card] -primitive=Ooze (Ooze) +primitive=Ooze Token from Ooze Token id= rarity=T [/card] diff --git a/projects/mtg/bin/Res/sets/SOK/_cards.dat b/projects/mtg/bin/Res/sets/SOK/_cards.dat index f38b7d8ec..97a47c418 100644 --- a/projects/mtg/bin/Res/sets/SOK/_cards.dat +++ b/projects/mtg/bin/Res/sets/SOK/_cards.dat @@ -174,7 +174,7 @@ id=74373 rarity=U [/card] [card] -primitive=Elemental (Feral Lightning) +primitive=Elemental Token from Feral Lightning id=-84373 rarity=T [/card] diff --git a/projects/mtg/bin/Res/sets/USG/_cards.dat b/projects/mtg/bin/Res/sets/USG/_cards.dat index 5cb40089d..e9ea19ef3 100644 --- a/projects/mtg/bin/Res/sets/USG/_cards.dat +++ b/projects/mtg/bin/Res/sets/USG/_cards.dat @@ -794,7 +794,7 @@ id=9847 rarity=R [/card] [card] -primitive=Knight (Waylay) +primitive=Knight Token from Waylay id=-5833 rarity=T [/card] diff --git a/projects/mtg/bin/Res/sets/ZEN/_cards.dat b/projects/mtg/bin/Res/sets/ZEN/_cards.dat index ba9c1b68d..ae38ad5b5 100644 --- a/projects/mtg/bin/Res/sets/ZEN/_cards.dat +++ b/projects/mtg/bin/Res/sets/ZEN/_cards.dat @@ -219,7 +219,7 @@ id=191373 rarity=R [/card] [card] -primitive=Elemental (Zendikar Shrine) +primitive=Elemental Token from Zendikar Shrine id=-183403 rarity=T [/card] diff --git a/projects/mtg/bin/Res/sets/mtg_todo.dat b/projects/mtg/bin/Res/sets/mtg_todo.dat index 313a642f0..e65264ad6 100644 --- a/projects/mtg/bin/Res/sets/mtg_todo.dat +++ b/projects/mtg/bin/Res/sets/mtg_todo.dat @@ -516,15 +516,6 @@ mana={5} type=Artifact [/card] [card] -name=Alabaster Leech -text=White spells you cast cost {W} more to cast. -mana={W} -type=Creature -subtype=Leech -power=1 -toughness=3 -[/card] -[card] name=Alabaster Potion text=Choose one - Target player gains X life; or prevent the next X damage that would be dealt to target creature or player this turn. mana={X}{W}{W} @@ -567,12 +558,6 @@ power=1 toughness=1 [/card] [card] -name=Alchor's Tomb -text={2}, {T}: Target permanent you control becomes the color of your choice. (This effect lasts indefinitely.) -mana={4} -type=Artifact -[/card] -[card] name=Aleatory text=Cast Aleatory only during combat after blockers are declared. -- Flip a coin. If you win the flip, target creature gets +1/+1 until end of turn. -- Draw a card at the beginning of the next turn's upkeep. mana={1}{R} @@ -824,15 +809,6 @@ text={T}: Add one mana of any color to your mana pool. Spend this mana only to c type=Land [/card] [card] -name=Andradite Leech -text=Black spells you cast cost {B} more to cast. -- {B}: Andradite Leech gets +1/+1 until end of turn. -mana={2}{B} -type=Creature -subtype=Leech -power=2 -toughness=2 -[/card] -[card] name=Angel of Salvation text=Flash; convoke (Each creature you tap while casting this spell reduces its cost by {1} or by one mana of that creature's color.) -- Flying -- When Angel of Salvation enters the battlefield, prevent the next 5 damage that would be dealt this turn to any number of target creatures and/or players, divided as you choose. mana={6}{W}{W} @@ -1648,12 +1624,6 @@ mana={1}{U} type=Instant [/card] [card] -name=Aura of Silence -text=Artifact and enchantment spells your opponents cast cost {2} more to cast. -- Sacrifice Aura of Silence: Destroy target artifact or enchantment. -mana={1}{W}{W} -type=Enchantment -[/card] -[card] name=Auramancer's Guise text=Enchant creature -- Enchanted creature gets +2/+2 for each Aura attached to it and has vigilance. mana={2}{U}{U} @@ -2147,15 +2117,6 @@ power=3 toughness=2 [/card] [card] -name=Ballyrush Banneret -text=Kithkin spells and Soldier spells you cast cost {1} less to cast. -mana={1}{W} -type=Creature -subtype=Kithkin Soldier -power=2 -toughness=1 -[/card] -[card] name=Balm of Restoration text={1}, {T}, Sacrifice Balm of Restoration: Choose one - You gain 2 life; or prevent the next 2 damage that would be dealt to target creature or player this turn. mana={2} @@ -3468,15 +3429,6 @@ power=6 toughness=7 [/card] [card] -name=Bosk Banneret -text=Treefolk spells and Shaman spells you cast cost {1} less to cast. -mana={1}{G} -type=Creature -subtype=Treefolk Shaman -power=1 -toughness=3 -[/card] -[card] name=Bottle of Suleiman text={1}, Sacrifice Bottle of Suleiman: Flip a coin. If you lose the flip, Bottle of Suleiman deals 5 damage to you. If you win the flip, put a 5/5 colorless Djinn artifact creature token with flying onto the battlefield. mana={4} @@ -3734,15 +3686,6 @@ mana={X}{R}{R}{W}{W} type=Sorcery [/card] [card] -name=Brighthearth Banneret -text=Elemental spells and Warrior spells you cast cost {1} less to cast. -- Reinforce 1 - {1}{R} ({1}{R}, Discard this card: Put a +1/+1 counter on target creature.) -mana={1}{R} -type=Creature -subtype=Elemental Warrior -power=1 -toughness=1 -[/card] -[card] name=Brilliant Ultimatum text=Exile the top five cards of your library. An opponent separates those cards into two piles. You may play any number of cards from one of those piles without paying their mana costs. mana={W}{W}{U}{U}{U}{B}{B} @@ -5222,12 +5165,6 @@ power=1 toughness=1 [/card] [card] -name=Chill -text=Red spells cost {2} more to cast. -mana={1}{U} -type=Enchantment -[/card] -[card] name=Chill Haunting text=As an additional cost to cast Chill Haunting, exile X creature cards from your graveyard. -- Target creature gets -X/-X until end of turn. mana={1}{B} @@ -5668,12 +5605,6 @@ mana={2}{W}{U} type=Enchantment [/card] [card] -name=Cloud Key -text=As Cloud Key enters the battlefield, choose artifact, creature, enchantment, instant, or sorcery. -- Spells you cast of the chosen type cost {1} less to cast. -mana={3} -type=Artifact -[/card] -[card] name=Cloud of Faeries text=Flying -- When Cloud of Faeries enters the battlefield, untap up to two lands. -- Cycling {2} ({2}, Discard this card: Draw a card.) mana={1}{U} @@ -7344,15 +7275,6 @@ power=1 toughness=1 [/card] [card] -name=Daru Warchief -text=Soldier spells you cast cost {1} less to cast. -- Soldier creatures you control get +1/+2. -mana={2}{W}{W} -type=Creature -subtype=Human Soldier -power=1 -toughness=1 -[/card] -[card] name=Dash Hopes text=When you cast Dash Hopes, any player may pay 5 life. If a player does, counter Dash Hopes. -- Counter target spell. mana={B}{B} @@ -8048,15 +7970,6 @@ mana={7}{U}{U} type=Sorcery [/card] [card] -name=Derelor -text=Black spells you cast cost {B} more to cast. -mana={3}{B} -type=Creature -subtype=Thrull -power=4 -toughness=4 -[/card] -[card] name=Dermoplasm text=Flying -- Morph {2}{U}{U} (You may cast this face down as a 2/2 creature for {3}. Turn it face up any time for its morph cost.) -- When Dermoplasm is turned face up, you may put a creature card with morph from your hand onto the battlefield face up. If you do, return Dermoplasm to its owner's hand. mana={2}{U} @@ -8847,18 +8760,7 @@ power=1 toughness=1 [/card] [card] -name=Dragonspeaker Shaman -text=Dragon spells you cast cost {2} less to cast. -mana={1}{R}{R} -type=Creature -subtype=Human Barbarian Shaman -power=2 -toughness=2 -[/card] -[card] name=Dragonstorm -target=dragon|myLibrabry -auto=moveto(myBattlefield) text=Search your library for a Dragon permanent card and put it onto the battlefield. Then shuffle your library. -- Storm (When you cast this spell, copy it for each spell cast before it this turn.) mana={8}{R} type=Sorcery @@ -8879,12 +8781,6 @@ power=1 toughness=1 [/card] [card] -name=Dralnu's Crusade -text=Goblin creatures get +1/+1. -- All Goblins are black and are Zombies in addition to their other creature types. -mana={1}{B}{R} -type=Enchantment -[/card] -[card] name=Dralnu's Pet text=Kicker - {2}{B}, Discard a creature card. (You may pay {2}{B} and discard a creature card in addition to any other costs as you cast this spell.) -- If Dralnu's Pet was kicked, it enters the battlefield with flying and with X +1/+1 counters on it, where X is the discarded card's converted mana cost. mana={1}{U}{U} @@ -9598,15 +9494,6 @@ type=Enchantment subtype=Aura [/card] [card] -name=Edgewalker -text=Cleric spells you cast cost {W}{B} less to cast. This effect reduces only the amount of colored mana you pay. (For example, if you cast a Cleric spell with mana cost {1}{W}, it costs {1} to cast.) -mana={1}{W}{B} -type=Creature -subtype=Human Cleric -power=2 -toughness=2 -[/card] -[card] name=Ego Erasure text=Changeling (This card is every creature type at all times.) -- Creatures target player controls get -2/-0 and lose all creature types until end of turn. mana={2}{U} @@ -9916,12 +9803,6 @@ mana={2}{W} type=Instant [/card] [card] -name=Emerald Medallion -text=Green spells you cast cost {1} less to cast. -mana={2} -type=Artifact -[/card] -[card] name=Emeria, the Sky Ruin text=Emeria, the Sky Ruin enters the battlefield tapped. -- At the beginning of your upkeep, if you control seven or more Plains, you may return target creature card from your graveyard to the battlefield. -- {T}: Add {W} to your mana pool. type=Land @@ -9957,12 +9838,6 @@ power=2 toughness=2 [/card] [card] -name=Enchanted Evening -text=All permanents are enchantments in addition to their other types. -mana={3}{WU}{WU} -type=Enchantment -[/card] -[card] name=Enchantment Alteration text=Attach target Aura attached to a creature or land to another permanent of that type. mana={U} @@ -10517,15 +10392,6 @@ type=Instant subtype=Arcane [/card] [card] -name=Etherium Sculptor -text=Artifact spells you cast cost {1} less to cast. -mana={1}{U} -type=Artifact Creature -subtype=Vedalken Artificer -power=1 -toughness=2 -[/card] -[card] name=Ethersworn Canonist text=Each player who has cast a nonartifact spell this turn can't cast additional nonartifact spells. mana={1}{W} @@ -11352,12 +11218,6 @@ type=Enchantment subtype=Aura [/card] [card] -name=Feroz's Ban -text=Creature spells cost {2} more to cast. -mana={6} -type=Artifact -[/card] -[card] name=Ferropede text=Ferropede is unblockable. -- Whenever Ferropede deals combat damage to a player, you may remove a counter from target permanent. mana={3} @@ -12543,15 +12403,6 @@ power=2 toughness=2 [/card] [card] -name=Frogtosser Banneret -text=Haste -- Goblin spells and Rogue spells you cast cost {1} less to cast. -mana={1}{B} -type=Creature -subtype=Goblin Rogue -power=1 -toughness=1 -[/card] -[card] name=Frontline Strategist text=Morph {W} (You may cast this face down as a 2/2 creature for {3}. Turn it face up any time for its morph cost.) -- When Frontline Strategist is turned face up, prevent all combat damage non-Soldier creatures would deal this turn. mana={W} @@ -13634,15 +13485,6 @@ power=4 toughness=4 [/card] [card] -name=Glowrider -text=Noncreature spells cost {1} more to cast. -mana={2}{W} -type=Creature -subtype=Human Cleric -power=2 -toughness=1 -[/card] -[card] name=Gluttonous Slime text=Flash -- Devour 1 (As this enters the battlefield, you may sacrifice any number of creatures. This creature enters the battlefield with that many +1/+1 counters on it.) mana={2}{G} @@ -14037,15 +13879,6 @@ mana={2}{R} type=Enchantment [/card] [card] -name=Goblin Warchief -text=Goblin spells you cast cost {1} less to cast. -- Goblin creatures you control have haste. -mana={1}{R}{R} -type=Creature -subtype=Goblin -power=2 -toughness=2 -[/card] -[card] name=Goblin Warrens text={2}{R}, Sacrifice two Goblins: Put three 1/1 red Goblin creature tokens onto the battlefield. mana={2}{R} @@ -14295,15 +14128,6 @@ type=Artifact subtype=Equipment [/card] [card] -name=Grand Arbiter Augustin IV -text=White spells you cast cost {1} less to cast. -- Blue spells you cast cost {1} less to cast. -- Spells your opponents cast cost {1} more to cast. -mana={2}{W}{U} -type=Legendary Creature -subtype=Human Advisor -power=2 -toughness=3 -[/card] -[card] name=Grand Melee auto=lord(creature) mustattack auto=lord(creature) mustblock @@ -15581,14 +15405,7 @@ power=2 toughness=2 [/card] [card] -name=Helm of Awakening -text=Spells cost {1} less to cast. -mana={2} -type=Artifact -[/card] -[card] name=Helm of Chatzuk -auto={1}{T}:banding target(creature) text={1}, {T}: Target creature gains banding until end of turn. (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding a player controls are blocking or being blocked by a creature, that player divides that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.) mana={1} type=Artifact @@ -15769,12 +15586,6 @@ mana={W} type=Enchantment [/card] [card] -name=High Seas -text=Red creature spells and green creature spells cost {1} more to cast. -mana={2}{U} -type=Enchantment -[/card] -[card] name=High Tide text=Until end of turn, whenever a player taps an Island for mana, that player adds {U} to his or her mana pool (in addition to the mana the land produces). mana={U} @@ -15886,12 +15697,6 @@ mana={5}{U} type=Enchantment [/card] [card] -name=Hivestone -text=Creatures you control are Slivers in addition to their other creature types. -mana={2} -type=Artifact -[/card] -[card] name=Hivis of the Scale text=You may choose not to untap Hivis of the Scale during your untap step. -- {T}: Gain control of target Dragon for as long as you control Hivis and Hivis remains tapped. mana={3}{R}{R} @@ -17225,15 +17030,6 @@ power=2 toughness=2 [/card] [card] -name=Irini Sengir -text=White enchantment spells and green enchantment spells cost {2} more to cast. -mana={2}{B}{B} -type=Legendary Creature -subtype=Vampire Dwarf -power=2 -toughness=2 -[/card] -[card] name=Iron Maiden text=At the beginning of each opponent's upkeep, Iron Maiden deals X damage to that player, where X is the number of cards in his or her hand minus 4. mana={3} @@ -17421,15 +17217,6 @@ power=2 toughness=1 [/card] [card] -name=Jade Leech -text=Green spells you cast cost {G} more to cast. -mana={2}{G}{G} -type=Creature -subtype=Leech -power=5 -toughness=5 -[/card] -[card] name=Jade Monolith text={1}: The next time a source of your choice would deal damage to target creature this turn, that source deals that damage to you instead. mana={4} @@ -17506,12 +17293,6 @@ mana={3} type=Artifact [/card] [card] -name=Jet Medallion -text=Black spells you cast cost {1} less to cast. -mana={2} -type=Artifact -[/card] -[card] name=Jetting Glasskite text=Flying -- Whenever Jetting Glasskite becomes the target of a spell or ability for the first time in a turn, counter that spell or ability. mana={4}{U}{U} @@ -18816,15 +18597,6 @@ power=3 toughness=2 [/card] [card] -name=Krosan Warchief -text=Beast spells you cast cost {1} less to cast. -- {1}{G}: Regenerate target Beast. -mana={2}{G} -type=Creature -subtype=Beast -power=2 -toughness=2 -[/card] -[card] name=Krovikan Elementalist text={2}{R}: Target creature gets +1/+0 until end of turn. -- {U}{U}: Target creature you control gains flying until end of turn. Sacrifice it at the beginning of the next end step. mana={B}{B} @@ -19610,12 +19382,6 @@ mana={4} type=Artifact [/card] [card] -name=Life and Limb -text=All Forests and all Saprolings are 1/1 green Saproling creatures and Forest lands in addition to their other types. -mana={3}{G} -type=Enchantment -[/card] -[card] name=Life from the Loam text=Return up to three target land cards from your graveyard to your hand. -- Dredge 3 (If you would draw a card, instead you may put exactly three cards from the top of your library into your graveyard. If you do, return this card from your graveyard to your hand. Otherwise, draw a card.) mana={1}{G} @@ -19991,15 +19757,6 @@ mana={0} type=Artifact [/card] [card] -name=Lodestone Golem -text=Nonartifact spells cost {1} more to cast. -mana={4} -type=Artifact Creature -subtype=Golem -power=5 -toughness=3 -[/card] -[card] name=Logic Knot text=Delve (You may exile any number of cards from your graveyard as you cast this spell. It costs {1} less to cast for each card exiled this way.) -- Counter target spell unless its controller pays {X}. mana={X}{U}{U} @@ -20015,12 +19772,6 @@ power=2 toughness=2 [/card] [card] -name=Long-Forgotten Gohei -text=Arcane spells you cast cost {1} less to cast. -- Spirit creatures you control get +1/+1. -mana={3} -type=Artifact -[/card] -[card] name=Long-Term Plans target=*|myLibrary text=Search your library for a card, shuffle your library, then put that card third from the top. @@ -20733,12 +20484,6 @@ power=1 toughness=1 [/card] [card] -name=Mana Matrix -text=Instant and enchantment spells you cast cost up to {2} less to cast. -mana={6} -type=Artifact -[/card] -[card] name=Mana Maze text=Players can't cast spells that share a color with the spell most recently cast this turn. mana={1}{U} @@ -21302,15 +21047,6 @@ mana={3}{R} type=Enchantment [/card] [card] -name=Memnarch -text={1}{U}{U}: Target permanent becomes an artifact in addition to its other types. (This effect lasts indefinitely.) -- {3}{U}: Gain control of target artifact. (This effect lasts indefinitely.) -mana={7} -type=Legendary Artifact Creature -subtype=Wizard -power=4 -toughness=5 -[/card] -[card] name=Memory Crystal text=Buyback costs cost {2} less. mana={3} @@ -23668,15 +23404,6 @@ power=2 toughness=2 [/card] [card] -name=Nightscape Familiar -text=Blue spells and red spells you cast cost {1} less to cast. -- {1}{B}: Regenerate Nightscape Familiar. -mana={1}{B} -type=Creature -subtype=Zombie -power=1 -toughness=1 -[/card] -[card] name=Nightshade Assassin text=First strike -- When Nightshade Assassin enters the battlefield, you may reveal X black cards in your hand. If you do, target creature gets -X/-X until end of turn. -- Madness {1}{B} (If you discard this card, you may cast it for its madness cost instead of putting it into your graveyard.) mana={2}{B}{B} @@ -25462,12 +25189,6 @@ mana={1}{W} type=Instant [/card] [card] -name=Pearl Medallion -text=White spells you cast cost {1} less to cast. -mana={2} -type=Artifact -[/card] -[card] name=Pearl Shard text={3}, {T} or {W}, {T}: Prevent the next 2 damage that would be dealt to target creature or player this turn. mana={3} @@ -26215,12 +25936,6 @@ mana={1}{W} type=Enchantment [/card] [card] -name=Planar Gate -text=Creature spells you cast cost up to {2} less to cast. -mana={6} -type=Artifact -[/card] -[card] name=Planar Guide text={3}{W}, Exile Planar Guide: Exile all creatures. At the beginning of the next end step, return those cards to the battlefield under their owners' control. mana={W} @@ -26803,12 +26518,6 @@ mana={2}{W} type=Enchantment [/card] [card] -name=Prismatic Lace -text=Target permanent becomes the color or colors of your choice. (This effect lasts indefinitely.) -mana={U} -type=Instant -[/card] -[card] name=Prismatic Omen text=Lands you control are every basic land type in addition to their other types. mana={1}{G} @@ -29691,21 +29400,6 @@ power=2 toughness=3 [/card] [card] -name=Ruby Leech -text=First strike -- Red spells you cast cost {R} more to cast. -mana={1}{R} -type=Creature -subtype=Leech -power=2 -toughness=2 -[/card] -[card] -name=Ruby Medallion -text=Red spells you cast cost {1} less to cast. -mana={2} -type=Artifact -[/card] -[card] name=Rude Awakening text=Choose one - Untap all lands you control; or until end of turn, lands you control become 2/2 creatures that are still lands. -- Entwine {2}{G} (Choose both if you pay the entwine cost.) mana={4}{G} @@ -30415,21 +30109,6 @@ mana={U} type=Instant [/card] [card] -name=Sapphire Leech -text=Flying -- Blue spells you cast cost {U} more to cast. -mana={1}{U} -type=Creature -subtype=Leech -power=2 -toughness=2 -[/card] -[card] -name=Sapphire Medallion -text=Blue spells you cast cost {1} less to cast. -mana={2} -type=Artifact -[/card] -[card] name=Saprazzan Breaker text={U}: Put the top card of your library into your graveyard. If that card is a land card, Saprazzan Breaker is unblockable this turn. mana={4}{U} @@ -33799,12 +33478,6 @@ mana={3}{W} type=Enchantment [/card] [card] -name=Sphere of Resistance -text=Spells cost {1} more to cast. -mana={2} -type=Artifact -[/card] -[card] name=Sphere of Truth text=If a white source would deal damage to you, prevent 2 of that damage. mana={3}{W} @@ -34337,12 +34010,6 @@ mana={1} type=Artifact [/card] [card] -name=Squeeze -text=Sorcery spells cost {3} more to cast. -mana={3}{U} -type=Enchantment -[/card] -[card] name=Squelch text=Counter target activated ability. (Mana abilities can't be targeted.) -- Draw a card. mana={1}{U} @@ -34593,15 +34260,6 @@ power=2 toughness=1 [/card] [card] -name=Stinkdrinker Daredevil -text=Giant spells you cast cost {2} less to cast. -mana={2}{R} -type=Creature -subtype=Goblin Rogue -power=1 -toughness=3 -[/card] -[card] name=Stinkweed Imp text=Flying -- Whenever Stinkweed Imp deals combat damage to a creature, destroy that creature. -- Dredge 5 (If you would draw a card, instead you may put exactly five cards from the top of your library into your graveyard. If you do, return this card from your graveyard to your hand. Otherwise, draw a card.) mana={2}{B} @@ -34667,12 +34325,6 @@ mana={2}{R} type=Sorcery [/card] [card] -name=Stone Calendar -text=Spells you cast cost up to {1} less to cast. -mana={5} -type=Artifact -[/card] -[card] name=Stone Giant text={T}: Target creature you control with toughness less than Stone Giant's power gains flying until end of turn. Destroy that creature at the beginning of the next end step. mana={2}{R}{R} @@ -34731,15 +34383,6 @@ mana={3}{G} type=Instant [/card] [card] -name=Stonybrook Banneret -text=Islandwalk -- Merfolk spells and Wizard spells you cast cost {1} less to cast. -mana={1}{U} -type=Creature -subtype=Merfolk Wizard -power=1 -toughness=1 -[/card] -[card] name=Storage Matrix text=As long as Storage Matrix is untapped, each player chooses artifact, creature, or land during his or her untap step. That player can untap only permanents of the chosen type this step. mana={3} @@ -34820,15 +34463,6 @@ power=2 toughness=2 [/card] [card] -name=Stormscape Familiar -text=Flying -- White spells and black spells you cast cost {1} less to cast. -mana={1}{U} -type=Creature -subtype=Bird -power=1 -toughness=1 -[/card] -[card] name=Stormtide Leviathan text=Islandwalk -- All lands are Islands in addition to their original type. -- Creatures without flying or islandwalk can't attack. mana={5}{U}{U}{U} @@ -35213,15 +34847,6 @@ power=2 toughness=2 [/card] [card] -name=Sunscape Familiar -text=Defender (This creature can't attack.) -- Green spells and blue spells you cast cost {1} less to cast. -mana={1}{W} -type=Creature -subtype=Wall -power=0 -toughness=3 -[/card] -[card] name=Sunscour text=You may exile two white cards from your hand rather than pay Sunscour's mana cost. -- Destroy all creatures. mana={5}{W}{W} @@ -36505,12 +36130,6 @@ power=7 toughness=7 [/card] [card] -name=Thorn of Amethyst -text=Noncreature spells cost {1} more to cast. -mana={2} -type=Artifact -[/card] -[card] name=Thorn-Thrash Viashino text=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.) -- {G}: Thorn-Thrash Viashino gains trample until end of turn. mana={3}{R} @@ -36536,15 +36155,6 @@ power=2 toughness=2 [/card] [card] -name=Thornscape Familiar -text=Red spells and white spells you cast cost {1} less to cast. -mana={1}{G} -type=Creature -subtype=Insect -power=2 -toughness=1 -[/card] -[card] name=Thought Devourer text=Flying -- Your maximum hand size is reduced by four. mana={2}{U}{U} @@ -36845,15 +36455,6 @@ power=2 toughness=2 [/card] [card] -name=Thunderscape Familiar -text=First strike -- Black spells and green spells you cast cost {1} less to cast. -mana={1}{R} -type=Creature -subtype=Kavu -power=1 -toughness=1 -[/card] -[card] name=Thunderstaff text=If Thunderstaff is untapped and a creature would deal combat damage to you, prevent 1 of that damage. -- {2}, {T}: Attacking creatures get +1/+0 until end of turn. mana={3} @@ -37942,15 +37543,6 @@ power=1 toughness=3 [/card] [card] -name=Undead Warchief -text=Zombie spells you cast cost {1} less to cast. -- Zombie creatures you control get +2/+1. -mana={2}{B}{B} -type=Creature -subtype=Zombie -power=1 -toughness=1 -[/card] -[card] name=Undergrowth text=As an additional cost to cast Undergrowth, you may pay {2}{R}. -- Prevent all combat damage that would be dealt this turn. If its additional cost was paid, Undergrowth doesn't affect combat damage that would be dealt by red creatures. mana={G} @@ -38136,11 +37728,6 @@ power=2 toughness=2 [/card] [card] -name=Urborg, Tomb of Yawgmoth -text=Each land is a Swamp in addition to its other land types. -type=Legendary Land -[/card] -[card] name=Urge to Feed text=Target creature gets -3/-3 until end of turn. You may tap any number of untapped Vampire creatures you control. If you do, put a +1/+1 counter on each of those Vampires. mana={B}{B} diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index dd6bb5356..9d0e886c6 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -58,7 +58,7 @@ type=Sorcery [card] name=AEther Shockwave auto=choice tap all(spirit) -auto=choice all(creature[-spirit]) +auto=choice tap all(creature[-spirit]) text=Choose one - Tap all Spirits; or tap all non-Spirit creatures. mana={3}{W} type=Instant @@ -823,6 +823,20 @@ power=4 toughness=4 [/card] [card] +name=Alabaster Leech +auto=lord(*[white]|myhand) white:+1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=White spells you cast cost {W} more to cast. +mana={W} +type=Creature +subtype=Leech +power=1 +toughness=3 +[/card] +[card] name=Alaborn Grenadier abilities=vigilance text=Vigilance @@ -895,6 +909,17 @@ power=3 toughness=3 [/card] [card] +name=Alchor's Tomb +auto={2}{T}:name(white) && target(*|myBattlefield) transforms(,white) +auto={2}{T}:name(blue) && target(*|myBattlefield) transforms(,blue) +auto={2}{T}:name(black) && target(*|myBattlefield) transforms(,black) +auto={2}{T}:name(red) && target(*|myBattlefield) transforms(,red) +auto={2}{T}:name(green) && target(*|myBattlefield) transforms(,green) +text={2}, {T}: Target permanent you control becomes the color of your choice. (This effect lasts indefinitely.) +mana={4} +type=Artifact +[/card] +[card] name=Alert Shu Infantry abilities=vigilance text=Vigilance @@ -1379,6 +1404,21 @@ text={T}: Add {2} to your mana pool. Ancient Tomb deals 2 damage to you. type=Land [/card] [card] +name=Andradite Leech +auto=lord(*[black]|myhand) black:+1 +auto={B}:1/1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Black spells you cast cost {B} more to cast. -- {B}: Andradite Leech gets +1/+1 until end of turn. +mana={2}{B} +type=Creature +subtype=Leech +power=2 +toughness=2 +[/card] +[card] name=Angel of Despair abilities=flying auto=destroy target(*) @@ -2667,6 +2707,19 @@ type=Enchantment subtype=Aura [/card] [card] +name=Aura of Silence +auto=lord(artifact|opponenthand) colorless:+2 +auto=lord(enchantment|opponenthand) colorless:+2 +auto={S}:destroy target(artifact,enchantment) +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Artifact and enchantment spells your opponents cast cost {2} more to cast. -- Sacrifice Aura of Silence: Destroy target artifact or enchantment. +mana={1}{W}{W} +type=Enchantment +[/card] +[card] name=Aura Shards auto=@movedTo(creature|mybattlefield):may destroy target(artifact,enchantment) text=Whenever a creature enters the battlefield under your control, you may destroy target artifact or enchantment. @@ -3324,6 +3377,21 @@ power=2 toughness=2 [/card] [card] +name=Ballyrush Banneret +auto=lord(kithkin|myhand) colorless:-1 +auto=lord(soldier|myhand) colorless:-1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Kithkin spells and Soldier spells you cast cost {1} less to cast. +mana={1}{W} +type=Creature +subtype=Kithkin Soldier +power=2 +toughness=1 +[/card] +[card] name=Baloth Woodcrasher auto=@movedTo(land|myBattlefield):4/4 ueot auto=@movedTo(land|myBattlefield):trample ueot @@ -5702,6 +5770,21 @@ mana={X}{G}{G} type=Sorcery [/card] [card] +name=Bosk Banneret +auto=lord(treefolk|myhand) colorless:-1 +auto=lord(shaman|myhand) colorless:-1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Treefolk spells and Shaman spells you cast cost {1} less to cast. +mana={1}{G} +type=Creature +subtype=Treefolk Shaman +power=1 +toughness=3 +[/card] +[card] name=Bottle Gnomes auto={S}:life:3 text=Sacrifice Bottle Gnomes: You gain 3 life. @@ -6065,6 +6148,22 @@ mana={3}{U}{U} type=Sorcery [/card] [card] +name=Brighthearth Banneret +auto=lord(elemental|myhand) colorless:-1 +auto=lord(warrior|myhand) colorless:-1 +autohand={1}{R}{S}:counter(1/1,1) target(creature) +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Elemental spells and Warrior spells you cast cost {1} less to cast. -- Reinforce 1 - {1}{R} ({1}{R}, Discard this card: Put a +1/+1 counter on target creature.) +mana={1}{R} +type=Creature +subtype=Elemental Warrior +power=1 +toughness=1 +[/card] +[card] name=Brightstone Ritual auto=foreach(goblin|battlefield) Add:{R} text=Add {R} to your mana pool for each Goblin on the battlefield. @@ -7889,6 +7988,18 @@ power=2 toughness=2 [/card] [card] +name=Chill +auto=lord(*[red]|myhand) colorless:+2 +auto=lord(*[red]|opponenthand) colorless:+2 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Red spells cost {2} more to cast. +mana={1}{U} +type=Enchantment +[/card] +[card] name=Chill to the Bone target=creature[-snow] auto=destroy @@ -8542,6 +8653,30 @@ power=2 toughness=3 [/card] [card] +name=Daru Warchief +text=Soldier spells you cast cost {1} less to cast. -- Soldier creatures you control get +1/+2. +mana={2}{W}{W} +type=Creature +subtype=Human Soldier +power=1 +toughness=1 +[/card] +[card] +name=Cloud Key +auto=choice name(artifact) && lord(artifact|myhand) colorless:-1 +auto=choice name(creature) && lord(creature|myhand) colorless:-1 +auto=choice name(enchantment) && lord(enchantment|myhand) colorless:-1 +auto=choice name(instant) && lord(instant|myhand) colorless:-1 +auto=choice name(sorcery) && lord(sorcery|myhand) colorless:-1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=As Cloud Key enters the battlefield, choose artifact, creature, enchantment, instant, or sorcery. -- Spells you cast of the chosen type cost {1} less to cast. +mana={3} +type=Artifact +[/card] +[card] name=Cloud Pirates abilities=cloud,flying text=Flying -- Cloud Pirates can block only creatures with flying. @@ -10583,6 +10718,17 @@ text={T}: Add {1} to your mana pool. -- {W}, {T}: Target Soldier creature gets + type=Land [/card] [card] +name=Daru Warchief +auto=lord(soldier|myhand) colorless:-1 +auto=lord(soldier|myBattlefield) 1/2 +text=Soldier spells you cast cost {1} less to cast. -- Soldier creatures you control get +1/+2. +mana={2}{W}{W} +type=Creature +subtype=Human Soldier +power=1 +toughness=1 +[/card] +[card] name=Dauntless Dourbark auto=foreach(forest|myBattlefield) 1/1 auto=foreach(treefolk|myBattlefield) 1/1 @@ -11398,6 +11544,20 @@ power=1 toughness=1 [/card] [card] +name=Derelor +auto=lord(*[black]|myhand) black:+1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Black spells you cast cost {B} more to cast. +mana={3}{B} +type=Creature +subtype=Thrull +power=4 +toughness=4 +[/card] +[card] name=Descendant of Masumaro auto=@each my upkeep:foreach(*|myHand) counter(1/1,1) && foreach(*|opponentHand) counter(1/1,-1) text=At the beginning of your upkeep, put a +1/+1 counter on Descendant of Masumaro for each card in your hand, then remove a +1/+1 counter from Descendant of Masumaro for each card in target opponent's hand. @@ -12335,7 +12495,7 @@ toughness=4 abilities=flying [/card] [card] -name=Dragon (Dragon Broodmother) +name=Dragon Token from Dragon Broodmother type=Creature subtype=Dragon abilities=flying @@ -12443,6 +12603,20 @@ power=2 toughness=2 [/card] [card] +name=Dragonspeaker Shaman +auto=lord(dragon|myhand) colorless:-2 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Dragon spells you cast cost {2} less to cast. +mana={1}{R}{R} +type=Creature +subtype=Human Barbarian Shaman +power=2 +toughness=2 +[/card] +[card] name=Dragonstalker abilities=flying auto=protection from(dragon) @@ -12494,6 +12668,14 @@ mana={3} type=Artifact [/card] [card] +name=Dralnu's Crusade +auto=lord(goblin) 1/1 +auto=lord(goblin) transforms(zombie,black) +text=Goblin creatures get +1/+1. -- All Goblins are black and are Zombies in addition to their other creature types. +mana={1}{B}{R} +type=Enchantment +[/card] +[card] name=Dramatic Entrance target=creature[green]|myhand auto=moveto(myBattlefield) @@ -13473,6 +13655,21 @@ power=3 toughness=3 [/card] [card] +name=Edgewalker +auto=lord(cleric|myhand) white:-1 +auto=lord(cleric|myhand) black:-1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Cleric spells you cast cost {W}{B} less to cast. This effect reduces only the amount of colored mana you pay. (For example, if you cast a Cleric spell with mana cost {1}{W}, it costs {1} to cast.) +mana={1}{W}{B} +type=Creature +subtype=Human Cleric +power=2 +toughness=2 +[/card] +[card] name=Eerie Procession target=arcane|mylibrary auto=moveto(myhand) @@ -13598,7 +13795,7 @@ mana={1}{U}{R} type=Instant [/card] [card] -name=Elemental (Feral Lightning) +name=Elemental Token from Feral Lightning type=Creature subtype=Elemental auto=@next end:moveTo(exile) @@ -13606,10 +13803,10 @@ abilities=haste text=Haste power=3 toughness=1 -colour=red +color=red [/card] [card] -name=Elemental (Zendikar Shrine) +name=Elemental Token from Zendikar Shrine type=Creature subtype=Elemental auto=@next end:moveTo(exile) @@ -13617,7 +13814,7 @@ abilities=trample,haste text=Trample,haste power=7 toughness=1 -colour=red +color=red [/card] [card] name=Elephant Ambush @@ -14108,7 +14305,7 @@ subtype=Aura name=Emerald Charm auto=aslongas(*|battlefield) choice untap target(*) auto=aslongas(enchantment[-aura]|battlefield) choice destroy target(enchantment[-aura]) -auto=aslongas(creature|battlefield) choice -flying target(creature) +auto=may -flying target(creature[flying]) text=Choose one - Untap target permanent; or destroy target non-Aura enchantment; or target creature loses flying until end of turn. mana={G} type=Instant @@ -14125,6 +14322,17 @@ power=1 toughness=1 [/card] [card] +name=Emerald Medallion +auto=lord(*[green]|myhand) colorless:-1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Green spells you cast cost {1} less to cast. +mana={2} +type=Artifact +[/card] +[card] name=Emerald Oryx abilities=forestwalk text=Forestwalk (This creature is unblockable as long as defending player controls a Forest.) @@ -14264,6 +14472,13 @@ power=3 toughness=5 [/card] [card] +name=Enchanted Evening +auto=lord(*|battlefield) transforms(enchantment) +text=All permanents are enchantments in addition to their other types. +mana={3}{WU}{WU} +type=Enchantment +[/card] +[card] name=Enchantress's Presence auto=@movedTo(enchantment|myBattlefield) from(mystack):draw:1 text=Whenever you cast an enchantment spell, draw a card. @@ -14786,6 +15001,20 @@ mana={2}{U} type=Artifact [/card] [card] +name=Etherium Sculptor +auto=lord(artifact|myhand) colorless:-1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Artifact spells you cast cost {1} less to cast. +mana={1}{U} +type=Artifact Creature +subtype=Vedalken Artificer +power=1 +toughness=2 +[/card] +[card] name=Ethersworn Adjudicator abilities=flying auto={1}{W}{B}{T}:destroy target(creature,enchantment) @@ -15095,6 +15324,17 @@ mana={3} type=Artifact [/card] [card] +name=Eye of Ugin +auto=lord(eldrazi[-white;-blue;-black;-red;-green]|myhand) colorless:-2 +auto={7}{T}:moveTo(myhand) target(creature[-white;-blue;-black;-red;-green]|myLibrary) +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Everglades enters the battlefield tapped. -- When Everglades enters the battlefield, sacrifice it unless you return an untapped Swamp you control to its owner's hand. -- {T}: Add {1}{B} to your mana pool. +type=Legendary Land +[/card] +[card] name=Eyeblight's Ending target=creature[-elf] auto=destroy @@ -15622,6 +15862,18 @@ power=2 toughness=1 [/card] [card] +name=Feroz's Ban +auto=lord(creature|myhand) colorless:+2 +auto=lord(creature|opponenthand) colorless:+2 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Creature spells cost {2} more to cast. +mana={6} +type=Artifact +[/card] +[card] name=Fervent Charge auto=lord(creature[attacking]|myBattlefield) 2/2 text=Whenever a creature you control attacks, it gets +2/+2 until end of turn. @@ -17186,6 +17438,22 @@ type=Enchantment subtype=Aura [/card] [card] +name=Frogtosser Banneret +abilities=haste +auto=lord(goblin|myhand) colorless:-1 +auto=lord(rogue|myhand) colorless:-1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Haste -- Goblin spells and Rogue spells you cast cost {1} less to cast. +mana={1}{B} +type=Creature +subtype=Goblin Rogue +power=1 +toughness=1 +[/card] +[card] name=Frontier Guide auto={3}{G}{T}:moveTo(myBattlefield) target(land[basic]|myLibrary) && tap text={3}{G}, {T}: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library. @@ -18512,6 +18780,21 @@ power=1 toughness=3 [/card] [card] +name=Glowrider +auto=lord(*[-creature]|myhand) colorless:+1 +auto=lord(*[-creature]|opponenthand) colorless:+1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Noncreature spells cost {1} more to cast. +mana={2}{W} +type=Creature +subtype=Human Cleric +power=2 +toughness=1 +[/card] +[card] name=Gluttonous Slime abilities=flash auto=counter(0/0,-1,devour) all(other creature) @@ -18560,7 +18843,7 @@ power=3 toughness=1 [/card] [card] -name=Goblin (Rakdos Guildmage) +name=Goblin Token from Rakdos Guildmage type=Creature subtype=Goblin auto=@next end:moveTo(exile) @@ -18568,7 +18851,7 @@ abilities=haste text=Haste power=2 toughness=1 -colour=red +color=red [/card] [card] name=Goblin Arsonist @@ -19179,6 +19462,21 @@ power=2 toughness=1 [/card] [card] +name=Goblin Warchief +auto=lord(goblin|myhand) colorless:-1 +auto=lord(goblin|myBattlefield) haste +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Goblin spells you cast cost {1} less to cast. -- Goblin creatures you control have haste. +mana={1}{R}{R} +type=Creature +subtype=Goblin +power=2 +toughness=2 +[/card] +[card] name=Goblin War Buggy abilities=haste auto=upcost[{1}{R}{0};next upkeep] moveTo(graveyard) @@ -19328,14 +19626,14 @@ power=1 toughness=1 [/card] [card] -name=Goldmeadow Harrier (Goldmeadow Lookout) +name=Goldmeadow Harrier Token from Goldmeadow Lookout type=Creature subtype=Kithkin Soldier auto={W}{T}:tap target(creature) text={W}, {T}: Tap target creature. power=1 toughness=1 -colour=white +color=white [/card] [card] name=Goldmeadow Lookout @@ -19500,6 +19798,22 @@ mana={4} type=Artifact [/card] [card] +name=Grand Arbiter Augustin IV +auto=lord(*[white;blue]|myhand) colorless:-1 +auto=lord(*[blue]|myhand) colorless:-1 +auto=lord(*|opponenthand) colorless:+1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=White spells you cast cost {1} less to cast. -- Blue spells you cast cost {1} less to cast. -- Spells your opponents cast cost {1} more to cast. +mana={2}{W}{U} +type=Legendary Creature +subtype=Human Advisor +power=2 +toughness=3 +[/card] +[card] name=Grand Coliseum auto=tap auto={T}:Add {1} @@ -21259,6 +21573,18 @@ toughness=1 mana={1}{R} [/card] [card] +name=Helm of Awakening +auto=lord(*|myhand) colorless:-1 +auto=lord(*|opponenthand) colorless:-1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Spells cost {1} less to cast. +mana={2} +type=Artifact +[/card] +[card] name=Helm of Kaldra auto=first strike auto=trample @@ -21431,6 +21757,18 @@ text={T}: Add {1} to your mana pool. -- {T}, Sacrifice a creature: You gain 1 li type=Land [/card] [card] +name=High Seas +auto=lord(creature[red;green]|myhand) colorless:+1 +auto=lord(creature[red;green]|opponenthand) colorless:+1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Red creature spells and green creature spells cost {1} more to cast. +mana={2}{U} +type=Enchantment +[/card] +[card] name=Highland Berserker auto=may lord(ally|myBattlefield) first strike ueot auto=@movedTo(other ally|myBattlefield):may lord(ally|myBattlefield) first strike ueot @@ -21512,6 +21850,13 @@ mana={1}{B}{B} type=Enchantment [/card] [card] +name=Hivestone +auto=lord(creature|mybattlefield) transforms(sliver) +text=Creatures you control are Slivers in addition to their other creature types. +mana={2} +type=Artifact +[/card] +[card] name=Hoar Shade auto={B}:1/1 text={B}: Hoar Shade gets +1/+1 until end of turn. @@ -23142,6 +23487,21 @@ power=4 toughness=4 [/card] [card] +name=Irini Sengir +auto=lord(enchantment[white;green]|myhand) colorless:+1 +auto=lord(enchantment[white;green]|opponenthand) colorless:+1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=White enchantment spells and green enchantment spells cost {2} more to cast. +mana={2}{B}{B} +type=Legendary Creature +subtype=Vampire Dwarf +power=2 +toughness=2 +[/card] +[card] name=Iron Lance auto={3}{T}:first strike target(creature) text={3}, {T}: Target creature gains first strike until end of turn. @@ -23450,6 +23810,20 @@ mana={4} type=Artifact [/card] [card] +name=Jade Leech +auto=lord(*[green]|myhand) green:+1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Green spells you cast cost {G} more to cast. +mana={2}{G}{G} +type=Creature +subtype=Leech +power=5 +toughness=5 +[/card] +[card] name=Jagged-Scar Archers auto=foreach(elf|myBattlefield) 1/1 auto={T}:thisforeach(power>=1) damage:1 target(creature[flying]) @@ -23627,6 +24001,17 @@ power=3 toughness=1 [/card] [card] +name=Jet Medallion +auto=lord(*[black]|myhand) colorless:-1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Black spells you cast cost {1} less to cast. +mana={2} +type=Artifact +[/card] +[card] name=Jhessian Infiltrator abilities=unblockable text=Jhessian Infiltrator is unblockable. @@ -25422,14 +25807,14 @@ mana={1}{W} type=Instant [/card] [card] -name=Knight (Waylay) +name=Knight Token from Waylay type=Creature subtype=Knight auto=@next cleanup:moveTo(exile) text= power=2 toughness=2 -colour=white +color=white [/card] [card] name=Knight Errant @@ -25949,6 +26334,21 @@ power=6 toughness=5 [/card] [card] +name=Krosan Warchief +auto={1}{G}:regenerate target(beast) +auto=lord(beast|myhand) colorless:-1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Beast spells you cast cost {1} less to cast. -- {1}{G}: Regenerate target Beast. +mana={2}{G} +type=Creature +subtype=Beast +power=2 +toughness=2 +[/card] +[card] name=Krosan Wayfarer auto={S}:moveto(myBattlefield) target(land|myhand) text=Sacrifice Krosan Wayfarer: You may put a land card from your hand onto the battlefield. @@ -26715,6 +27115,15 @@ power=2 toughness=2 [/card] [card] +name=Life and Limb +auto=lord(saproling|mybattlefield) transforms(forest) +auto=lord(saproling|mybattlefield) {T}:Add{G} +auto=lord(forest) becomes(Saproling,Creature Saproling,1/1,green) +text=All Forests and all Saprolings are 1/1 green Saproling creatures and Forest lands in addition to their other types. +mana={3}{G} +type=Enchantment +[/card] +[card] name=Life Burst target=player auto=life:4 @@ -27156,14 +27565,14 @@ power=1 toughness=1 [/card] [card] -name=Llanowar Elves (Llanowar Mentor) +name=Llanowar Elves Token from Llanowar Mentor type=Creature subtype=Elf Druid auto={T}:Add {G} text={T}: Add {G} to your mana pool. power=1 toughness=1 -colour=green +color=green [/card] [card] name=Llanowar Knight @@ -27274,6 +27683,21 @@ power=1 toughness=1 [/card] [card] +name=Lodestone Golem +auto=lord(*[-artifact]|myhand) colorless:+1 +auto=lord(*[-artifact]|opponenthand) colorless:+1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Nonartifact spells cost {1} more to cast. +mana={4} +type=Artifact Creature +subtype=Golem +power=5 +toughness=3 +[/card] +[card] name=Lodestone Myr abilities=trample auto={T(creature[artifact;-tapped]|myBattlefield)}:1/1 @@ -27313,6 +27737,18 @@ power=2 toughness=2 [/card] [card] +name=Long-Forgotten Gohei +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +auto=lord(arcane|myhand) colorless:-1 +auto=lord(spirit|myBattlefield) 1/1 +text=Arcane spells you cast cost {1} less to cast. -- Spirit creatures you control get +1/+1. +mana={3} +type=Artifact +[/card] +[card] name=Looming Hoverguard abilities=flying auto=moveTo(ownerLibrary) target(artifact) @@ -28173,6 +28609,18 @@ mana={3}{R}{R} type=Sorcery [/card] [card] +name=Mana Matrix +auto=lord(instant|myhand) colorless:-2 +auto=lord(enchantment|myhand) colorless:-2 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Instant and enchantment spells you cast cost up to {2} less to cast. +mana={6} +type=Artifact +[/card] +[card] name=Mana Prism auto={T}:Add {1} auto={1}{T}:Add {B} @@ -28817,6 +29265,17 @@ power=2 toughness=4 [/card] [card] +name=Memnarch +auto={1}{U}{U}:target(*) transforms(artifact) +auto={3}{U}:moveTo(myBattlefield) target(arifact) +text={1}{U}{U}: Target permanent becomes an artifact in addition to its other types. (This effect lasts indefinitely.) -- {3}{U}: Gain control of target artifact. (This effect lasts indefinitely.) +mana={7} +type=Legendary Artifact Creature +subtype=Wizard +power=4 +toughness=5 +[/card] +[card] name=Memory Erosion auto=@movedTo(*|opponentstack):deplete:2 opponent text=Whenever an opponent casts a spell, that player puts the top two cards of his or her library into his or her graveyard. @@ -31632,6 +32091,21 @@ power=1 toughness=1 [/card] [card] +name=Nightscape Familiar +auto=lord(*[blue;red]|myhand) colorless:-1 +auto={1}{B}:regenerate +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Blue spells and red spells you cast cost {1} less to cast. -- {1}{B}: Regenerate Nightscape Familiar. +mana={1}{B} +type=Creature +subtype=Zombie +power=1 +toughness=1 +[/card] +[card] name=Nightscape Master auto={U}{U}{T}:moveTo(ownerhand) target(creature) auto={R}{R}{T}:Damage:2 target(creature) @@ -32558,7 +33032,7 @@ mana={2}{U} type=Instant [/card] [card] -name=Ooze (Mitotic Slime) +name=Ooze Token from Mitotic Slime type=Creature subtype=Ooze auto=@movedTo(this|graveyard) from(battlefield):token(77777777)*2 @@ -32568,7 +33042,7 @@ toughness=2 color=green [/card] [card] -name=Ooze (Ooze) +name=Ooze Token from Ooze Token type=Creature subtype=Ooze text= @@ -33548,6 +34022,17 @@ power=4 toughness=4 [/card] [card] +name=Pearl Medallion +auto=lord(*[white]|myhand) colorless:-1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=White spells you cast cost {1} less to cast. +mana={2} +type=Artifact +[/card] +[card] name=Pearled Unicorn mana={2}{W} type=Creature @@ -34462,6 +34947,17 @@ mana={3}{B}{B} type=Sorcery [/card] [card] +name=Planar Gate +auto=lord(creature|myhand) colorless:-2 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Creature spells you cast cost up to {2} less to cast. +mana={6} +type=Artifact +[/card] +[card] name=Planar Portal auto={6}{T}:moveTo(myHand) target(*|myLibrary) text={6}, {T}: Search your library for a card and put that card into your hand. Then shuffle your library. @@ -34975,6 +35471,17 @@ power=5 toughness=4 [/card] [card] +name=Prismatic Lace +auto=name(white) && target(*|myBattlefield) transforms(,white) +auto=name(blue) && target(*|myBattlefield) transforms(,blue) +auto=name(black) && target(*|myBattlefield) transforms(,black) +auto=name(red) && target(*|myBattlefield) transforms(,red) +auto=name(green) && target(*|myBattlefield) transforms(,green) +text=Target permanent becomes the color or colors of your choice. (This effect lasts indefinitely.) +mana={U} +type=Instant +[/card] +[card] name=Prismatic Lens auto={T}:Add {1} auto={1}{T}:Add {G} @@ -38253,6 +38760,32 @@ power=2 toughness=2 [/card] [card] +name=Ruby Leech +abilities=first strike +auto=lord(*[red]|myhand) red:+1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=First strike -- Red spells you cast cost {R} more to cast. +mana={1}{R} +type=Creature +subtype=Leech +power=2 +toughness=2 +[/card] +[card] +name=Ruby Medallion +auto=lord(*[red]|myhand) colorless:-1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Red spells you cast cost {1} less to cast. +mana={2} +type=Artifact +[/card] +[card] name=Rugged Prairie auto={T}:Add {1} auto={RW}{T}:Add {R}{R} @@ -38823,6 +39356,32 @@ power=1 toughness=1 [/card] [card] +name=Sapphire Leech +abilities=flying +auto=lord(*[blue]|myhand) blue:+1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Flying -- Blue spells you cast cost {U} more to cast. +mana={1}{U} +type=Creature +subtype=Leech +power=2 +toughness=2 +[/card] +[card] +name=Sapphire Medallion +auto=lord(*[blue]|myhand) colorless:-1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Blue spells you cast cost {1} less to cast. +mana={2} +type=Artifact +[/card] +[card] name=Saprazzan Bailiff auto=moveTo(exile) all(enchantment,artifact|graveyard) auto=@movedTo(this|graveyard,exile,hand) from(myBattlefield):moveTo(myhand) all(artifact,enchantment|mygraveyard) && moveTo(opponenthand) all(artifact,enchantment|opponentgraveyard) @@ -43389,7 +43948,7 @@ power=3 toughness=1 [/card] [card] -name=Spark Elemental (Sparkspitter) +name=Spark Elemental Token from Sparkspitter type=Creature subtype=Elemental abilities=trample,haste @@ -43399,7 +43958,7 @@ type=Creature subtype=Elemental power=3 toughness=1 -colour=red +color=red [/card] [card] name=Spark Mage @@ -43599,6 +44158,18 @@ mana={2}{R} type=Enchantment [/card] [card] +name=Sphere of Resistance +auto=lord(*|myhand) colorless:+1 +auto=lord(*|opponenthand) colorless:+1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Spells cost {1} more to cast. +mana={2} +type=Artifact +[/card] +[card] name=Sphinx-Bone Wand auto=@movedTo(instant,sorcery|mystack):may counter(0/0,1,Charge) all(this) && thisforeach(counter{0/0,1,Charge}) damage:1 target(creature,player) text=Whenever you cast an instant or sorcery spell, you may put a charge counter on Sphinx-Bone Wand. If you do, Sphinx-Bone Wand deals damage equal to the number of charge counters on it to target creature or player. @@ -44053,7 +44624,7 @@ auto=thisforeach(counter{0/0.1.Age}) upcost[{G}] moveTo(graveyard) text=This creature gets +1/+1 for each card named Sound the Call in each graveyard. power=1 toughness=1 -colour=green +color=green [/card] [card] name=Splintering Wind @@ -44248,7 +44819,7 @@ power=0 toughness=2 [/card] [card] -name=Sprouting Phytohydra (Sprouting Phytohydra) +name=Sprouting Phytohydra Token from Sprouting Phytohydra type=Creature subtype=Plant Hydra abilities=defender @@ -44314,6 +44885,18 @@ power=1 toughness=1 [/card] [card] +name=Squeeze +text=Sorcery spells cost {3} more to cast. +auto=lord(sorcery|myhand) colorless:+3 +auto=lord(sorcery|opponenthand) colorless:+3 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +mana={3}{U} +type=Enchantment +[/card] +[card] name=Squire mana={1}{W} type=Creature @@ -44888,6 +45471,20 @@ power=2 toughness=2 [/card] [card] +name=Stinkdrinker Daredevil +auto=lord(giant|myhand) colorless:-2 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Giant spells you cast cost {2} less to cast. +mana={2}{R} +type=Creature +subtype=Goblin Rogue +power=1 +toughness=3 +[/card] +[card] name=Stirring Wildwood auto=tap auto={T}:Add{G} @@ -44936,6 +45533,17 @@ type=Land subtype=Mountain Forest [/card] [card] +name=Stone Calendar +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +auto=lord(*|myhand) colorless:-1 +text=Spells you cast cost up to {1} less to cast. +mana={5} +type=Artifact +[/card] +[card] name=Stone Catapult auto={T}:destroy target(creature[black;tapped]) myTurnOnly text={T}: Destroy target tapped nonblack creature. Activate this ability only during your turn, before attackers are declared. @@ -45066,6 +45674,22 @@ power=1 toughness=2 [/card] [card] +name=Stonybrook Banneret +abilities=islandwalk +auto=lord(merfolk|myhand) colorless:-1 +auto=lord(island|myhand) colorless:-1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Islandwalk -- Merfolk spells and Wizard spells you cast cost {1} less to cast. +mana={1}{U} +type=Creature +subtype=Merfolk Wizard +power=1 +toughness=1 +[/card] +[card] name=Stonybrook Schoolmaster auto=@tapped(this):may token(Merfolk wizard,creature Merfolk Wizard,1/1,blue) text=Whenever Stonybrook Schoolmaster becomes tapped, you may put a 1/1 blue Merfolk Wizard creature token onto the battlefield. @@ -45161,6 +45785,30 @@ power=1 toughness=1 [/card] [card] +name=Stormscape Familiar +text=Flying -- White spells and black spells you cast cost {1} less to cast. +mana={1}{U} +type=Creature +subtype=Bird +power=1 +toughness=1 +[/card] +[card] +name=Stormscape Familiar +abilities=flying +auto=lord(*[white;black]|myhand) colorless:-1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Flying -- White spells and black spells you cast cost {1} less to cast. +mana={1}{U} +type=Creature +subtype=Bird +power=1 +toughness=1 +[/card] +[card] name=Stormscape Master auto={W}{W}{T}:protection from white target(creature) auto={W}{W}{T}:protection from blue target(creature) @@ -45776,6 +46424,21 @@ power=1 toughness=1 [/card] [card] +name=Sunscape Familiar +abilities=flying +auto=lord(*[green;blue]|myhand) colorless:-1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Defender (This creature can't attack.) -- Green spells and blue spells you cast cost {1} less to cast. +mana={1}{W} +type=Creature +subtype=Wall +power=0 +toughness=3 +[/card] +[card] name=Sunscape Master auto={G}{G}{T}:lord(creature|myBattlefield) 2/2 auto={U}{U}{T}:moveTo(ownerhand) target(creature) @@ -47530,6 +48193,18 @@ power=0 toughness=0 [/card] [card] +name=Thorn of Amethyst +auto=lord(*[-creature]|myhand) colorless:+1 +auto=lord(*[-creature]|opponenthand) colorless:+1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Noncreature spells cost {1} more to cast. +mana={2} +type=Artifact +[/card] +[card] name=Thorn Thallid text=At the beginning of your upkeep, put a spore counter on Thorn Thallid. -- Remove three spore counters from Thorn Thallid: Thorn Thallid deals 1 damage to target creature or player. mana={1}{G}{G} @@ -47566,6 +48241,20 @@ power=1 toughness=1 [/card] [card] +name=Thornscape Familiar +auto=lord(*[red;white]|myhand) colorless:-1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Red spells and white spells you cast cost {1} less to cast. +mana={1}{G} +type=Creature +subtype=Insect +power=2 +toughness=1 +[/card] +[card] name=Thornscape Master auto={R}{R}{T}:Damage:2 target(creature) auto={W}{W}{T}:protection from white target(creature) @@ -47956,6 +48645,21 @@ power=1 toughness=1 [/card] [card] +name=Thunderscape Familiar +abilities=first strike +auto=lord(*[black;green]|myhand) colorless:-1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=First strike -- Black spells and green spells you cast cost {1} less to cast. +mana={1}{R} +type=Creature +subtype=Kavu +power=1 +toughness=1 +[/card] +[card] name=Thunderscape Master auto={B}{B}{T}:life:-2 target(player) && life:2 controller auto={G}{G}{T}:lord(creature|myBattlefield) 2/2 @@ -48776,7 +49480,7 @@ toughness=3 [card] name=Trade Caravan auto=@each my upkeep:counter(0/0,1,Currency) -auto={C(0/0,-2,Currency)}:untap target(land[basic]) opponentUpkeepOnly +auto={C(0/0,-2,Currency)}:untap target(land[basic]) myUpkeepOnly text=At the beginning of your upkeep, put a currency counter on Trade Caravan. -- Remove two currency counters from Trade Caravan: Untap target basic land. Activate this ability only during an opponent's upkeep. mana={W} type=Creature @@ -49748,6 +50452,21 @@ power=2 toughness=2 [/card] [card] +name=Undead Warchief +auto=lord(zombie|myBatllefield) 2/1 +auto=lord(zombie|myhand) colorless:-1 +autoexile=all(*|myhand) resetcost +autograveyard=all(*|myhand) resetcost +autohand=all(*|myhand) resetcost +autolibrary=all(*|myhand) resetcost +text=Zombie spells you cast cost {1} less to cast. -- Zombie creatures you control get +2/+1. +mana={2}{B}{B} +type=Creature +subtype=Zombie +power=1 +toughness=1 +[/card] +[card] name=Undercity Shade abilities=fear auto={B}:1/1 @@ -50041,6 +50760,13 @@ text={T}: Add {B} to your mana pool. -- {T}: Target creature loses first strike type=Legendary Land [/card] [card] +name=Urborg, Tomb of Yawgmoth +auto=lord(land) transforms(swamp) +auto=lord(land) {T}:Add{B} +text=Each land is a Swamp in addition to its other land types. +type=Legendary Land +[/card] +[card] name=Urborg Drake abilities=flying,mustattack text=Flying -- Urborg Drake attacks each turn if able. @@ -52743,7 +53469,7 @@ auto=@next end:moveTo(mygraveyard) text=Defender type=Creature suntype=Wall -colour=blue +color=blue [/card] [card] name=Waveskimmer Aven @@ -53910,14 +54636,14 @@ power=3 toughness=5 [/card] [card] -name=Wolf (Sound the Call) +name=Wolf Token from Sound the Call type=Creature subtype=Wolf auto=foreach(sound the call|graveyard) 1/1 text=This creature gets +1/+1 for each card named Sound the Call in each graveyard. power=1 toughness=1 -colour=green +color=green [/card] [card] name=Wolverine Pack diff --git a/projects/mtg/include/AllAbilities.h b/projects/mtg/include/AllAbilities.h index a6c301239..51f098551 100644 --- a/projects/mtg/include/AllAbilities.h +++ b/projects/mtg/include/AllAbilities.h @@ -90,12 +90,11 @@ public: size_t start = s.find_last_of(" ",found); if (start == string::npos) start = 0; else start++; - power = WParsedInt(s.substr(start,found - start), spell, card); - toughness = WParsedInt(s.substr(found+1,end-found-1), spell, card); + toughness = WParsedInt(s.substr(found+1,end-found-1), spell, card); ok = true; - } + } } }; @@ -2442,14 +2441,56 @@ class AOldSchoolDeathtouch:public MTGAbility{ } }; -//Adds types/abilities/P/T to a card (aura) -class ABecomes:public MTGAbility{ +//reset card cost----------------------------------------- +class AResetCost:public MTGAbility{ +public: + AResetCost(int id, MTGCardInstance * source, MTGCardInstance * target):MTGAbility(id,source,target){ + MTGCardInstance * _target = (MTGCardInstance *)target; + } + int addToGame(){ + MTGCardInstance * _target = (MTGCardInstance *)target; + _target->controller()->game->putInZone(_target,_target->controller()->game->hand, _target->controller()->game->hand); + return MTGAbility::addToGame(); + } + AResetCost * clone() const{ + AResetCost * a = NEW AResetCost(*this); + a->isClone = 1; + return a; + } + ~AResetCost(){ + } +}; + +//reduce or increase manacost of target by color:amount------------------------------------------ +class AManaRedux:public MTGAbility{ +public: + int amount; + int type; + AManaRedux(int id, MTGCardInstance * source, MTGCardInstance * target,int amount,int type):MTGAbility(id,source,target),amount(amount),type(type){ + MTGCardInstance * _target = (MTGCardInstance *)target; + } + int addToGame(){ + MTGCardInstance * _target = (MTGCardInstance *)target; + amount; + type; + _target->getManaCost()->add(type,amount); + return MTGAbility::addToGame(); + } + + AManaRedux * clone() const{ + AManaRedux * a = NEW AManaRedux(*this); + a->isClone = 1; + return a; + } + ~AManaRedux(){} +}; +//------------------------------------ +class ATransformer:public MTGAbility{ public: listabilities; listtypes; listcolors; - WParsedPT * wppt; - ABecomes(int id, MTGCardInstance * source, MTGCardInstance * target, string stypes, WParsedPT * wppt, string sabilities):MTGAbility(id,source,target),wppt(wppt){ + ATransformer(int id, MTGCardInstance * source, MTGCardInstance * target, string stypes, string sabilities):MTGAbility(id,source,target){ //TODO this is a copy/past of other code that's all around the place, everything should be in a dedicated parser class; for (int j = 0; j < Constants::NB_BASIC_ABILITIES; j++){ @@ -2457,14 +2498,13 @@ public: if (found != string::npos){ abilities.push_back(j); } - } - - for (int j = 0; j < Constants::MTG_NB_COLORS; j++){ + } + for (int j = 0; j < Constants::MTG_NB_COLORS; j++){ size_t found = sabilities.find(Constants::MTGColorStrings[j]); if (found != string::npos){ colors.push_back(j); } - } + } string s = stypes; while (s.size()){ @@ -2481,6 +2521,83 @@ public: } } + int addToGame(){ + MTGCardInstance * _target = (MTGCardInstance *)target; + list::iterator it; + for ( it=types.begin() ; it != types.end(); it++ ){ + _target->addType(*it); + } + for ( it=colors.begin() ; it != colors.end(); it++ ){ + _target->setColor(*it); + } + for ( it=abilities.begin() ; it != abilities.end(); it++ ){ + _target->basicAbilities[*it]++; + } + return MTGAbility::addToGame(); + } + int destroy(){ + MTGCardInstance * _target = (MTGCardInstance *)target; + list::iterator it; + for ( it=types.begin() ; it != types.end(); it++ ){ + _target->removeType(*it); + } + for ( it=colors.begin() ; it != colors.end(); it++ ){ + _target->removeColor(*it); + } + for ( it=abilities.begin() ; it != abilities.end(); it++ ){ + _target->basicAbilities[*it]--; + } + return 1; + } + + ATransformer * clone() const{ + ATransformer * a = NEW ATransformer(*this); + a->isClone = 1; + return a; + } + + ~ATransformer(){ + } + +}; +//Adds types/abilities/P/T to a card (aura) +class ABecomes:public MTGAbility{ +public: + listabilities; + listtypes; + listcolors; + WParsedPT * wppt; + ABecomes(int id, MTGCardInstance * source, MTGCardInstance * target, string stypes, WParsedPT * wppt, string sabilities):MTGAbility(id,source,target),wppt(wppt){ + //TODO this is a copy/past of other code that's all around the place, everything should be in a dedicated parser class; + + for (int j = 0; j < Constants::NB_BASIC_ABILITIES; j++){ + size_t found = sabilities.find(Constants::MTGBasicAbilities[j]); + if (found != string::npos){ + abilities.push_back(j); + } + } + + for (int j = 0; j < Constants::MTG_NB_COLORS; j++){ + size_t found = sabilities.find(Constants::MTGColorStrings[j]); + if (found != string::npos){ + colors.push_back(j); + } + } + + string s = stypes; + while (s.size()){ + size_t found = s.find(" "); + if (found != string::npos){ + int id = Subtypes::subtypesList->find(s.substr(0,found)); + types.push_back(id); + s = s.substr(found+1); + }else{ + int id = Subtypes::subtypesList->find(s); + types.push_back(id); + s = ""; + } + } + } int addToGame(){ MTGCardInstance * _target = (MTGCardInstance *)target; list::iterator it; diff --git a/projects/mtg/include/CardPrimitive.h b/projects/mtg/include/CardPrimitive.h index 5cec27544..8e63ba7d5 100644 --- a/projects/mtg/include/CardPrimitive.h +++ b/projects/mtg/include/CardPrimitive.h @@ -13,13 +13,13 @@ using namespace std; class CardPrimitive { protected: vector ftdText; - int init(); string lcname; ManaCost manaCost; public: string text; string name; + int init(); int colors[Constants::MTG_NB_COLORS]; map basicAbilities; diff --git a/projects/mtg/src/MTGAbility.cpp b/projects/mtg/src/MTGAbility.cpp index 4eac3fb2d..a0969629d 100644 --- a/projects/mtg/src/MTGAbility.cpp +++ b/projects/mtg/src/MTGAbility.cpp @@ -971,8 +971,118 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG ab = NEW ABecomesUEOT(id,card,target,stypes,pt,sabilities); }else{ ab = NEW ABecomes(id,card,target,stypes,pt,sabilities); + }return ab; + } + +//ManaRedux + found = s.find("colorless:"); + if (found != string::npos){ + size_t start = s.find(":",found); + size_t end = s.find(" ",start); + int amount; + if (end != string::npos){amount = atoi(s.substr(start+1,end-start-1).c_str());} + else{amount = atoi(s.substr(start+1).c_str());} + MTGAbility * a = NEW AManaRedux(id,card,target,amount,0); + return a; + } +//ManaRedux + found = s.find("green:"); + if (found != string::npos){ + size_t start = s.find(":",found); + size_t end = s.find(" ",start); + int amount; + if (end != string::npos){amount = atoi(s.substr(start+1,end-start-1).c_str());} + else{amount = atoi(s.substr(start+1).c_str());} + MTGAbility * a = NEW AManaRedux(id,card,target,amount,1); + return a; + } + //ManaRedux + found = s.find("blue:"); + if (found != string::npos){ + size_t start = s.find(":",found); + size_t end = s.find(" ",start); + int amount; + if (end != string::npos){amount = atoi(s.substr(start+1,end-start-1).c_str());} + else{amount = atoi(s.substr(start+1).c_str());} + MTGAbility * a = NEW AManaRedux(id,card,target,amount,2); + return a; + } + //ManaRedux + found = s.find("red:"); + if (found != string::npos){ + size_t start = s.find(":",found); + size_t end = s.find(" ",start); + int amount; + if (end != string::npos){amount = atoi(s.substr(start+1,end-start-1).c_str());} + else{amount = atoi(s.substr(start+1).c_str());} + MTGAbility * a = NEW AManaRedux(id,card,target,amount,3); + return a; + } + //ManaRedux + found = s.find("black:"); + if (found != string::npos){ + size_t start = s.find(":",found); + size_t end = s.find(" ",start); + int amount; + if (end != string::npos){amount = atoi(s.substr(start+1,end-start-1).c_str());} + else{amount = atoi(s.substr(start+1).c_str());} + MTGAbility * a = NEW AManaRedux(id,card,target,amount,4); + return a; + } + //ManaRedux + found = s.find("white:"); + if (found != string::npos){ + size_t start = s.find(":",found); + size_t end = s.find(" ",start); + int amount; + if (end != string::npos){amount = atoi(s.substr(start+1,end-start-1).c_str());} + else{amount = atoi(s.substr(start+1).c_str());} + MTGAbility * a = NEW AManaRedux(id,card,target,amount,5); + return a; + } + + //resetcost + found = s.find("resetcost"); + if (found != string::npos){ + MTGAbility * a = NEW AResetCost(id,card,target); + return a;} + ////one less mana + // found = s.find("oneless"); + // if (found != string::npos){ + //MTGAbility * a = NEW AOneless(id,card,target); + // return a;} + ////more more mana + // found = s.find("onemore"); + // if (found != string::npos){ + //MTGAbility * a = NEW AOnemore(id,card,target); + // return a;} + + //transform....(hivestone,living enchantment) + found = s.find("transforms("); + if (found != string::npos){ + size_t real_end = s.find(")", found); + size_t end = s.find(",", found); + if (end == string::npos) end = real_end; + string stypes = s.substr(found + 11,end - found - 11); + string sabilities; + if (end != real_end){ + int previous = end+1; + end = s.find(",",previous); + if (end == string::npos) end = real_end; + string temp = s.substr(previous, end - previous); + if (end == real_end){ + sabilities = temp; + } } - return ab; + if (end != real_end){ + sabilities = s.substr(end+1, real_end - end); + } + MTGAbility * ab; + if (forceUEOT){ + ab = NEW ATransformer(id,card,target,stypes,sabilities); + }else{ + ab = NEW ATransformer(id,card,target,stypes,sabilities); + }return ab; } //Change Power/Toughness @@ -1067,11 +1177,7 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG a->oneShot = 1; return a; } - - - - return NULL; - + return NULL; } //Tells the AI if the ability should target itself or an ennemy @@ -1187,6 +1293,10 @@ int AbilityFactory::getAbilities(vector * v, Spell * spell, MTGCar if (dest == zones->exile){ magicText = card->magicTexts["exile"]; break; + } + if (dest == zones->library){ + magicText = card->magicTexts["library"]; + break; } //Other zones needed ? return 0; diff --git a/projects/mtg/src/MTGRules.cpp b/projects/mtg/src/MTGRules.cpp index fd686f213..0680e83a8 100644 --- a/projects/mtg/src/MTGRules.cpp +++ b/projects/mtg/src/MTGRules.cpp @@ -175,7 +175,7 @@ int OtherAbilitiesEventReceiver::receiveEvent(WEvent *e){ AbilityFactory af; af.magicText(g->mLayers->actionLayer()->getMaxId(), NULL, event->card, 1, 0,event->to); return 1; - } + } } return 0; } diff --git a/projects/mtg/src/TargetChooser.cpp b/projects/mtg/src/TargetChooser.cpp index 105ff1cd8..10bd96970 100644 --- a/projects/mtg/src/TargetChooser.cpp +++ b/projects/mtg/src/TargetChooser.cpp @@ -77,6 +77,22 @@ TargetChooser * TargetChooserFactory::createTargetChooser(string s, MTGCardInsta zones[nbzones] = MTGGameZone::MY_BATTLEFIELD; nbzones++; zones[nbzones] = MTGGameZone::OPPONENT_BATTLEFIELD; + }else if(zoneName.compare("nonbattlezone") == 0){ + zones[nbzones] = MTGGameZone::MY_GRAVEYARD; + nbzones++; + zones[nbzones] = MTGGameZone::OPPONENT_GRAVEYARD; + nbzones++; + zones[nbzones] = MTGGameZone::MY_LIBRARY; + nbzones++; + zones[nbzones] = MTGGameZone::OPPONENT_LIBRARY; + nbzones++; + zones[nbzones] = MTGGameZone::MY_HAND; + nbzones++; + zones[nbzones] = MTGGameZone::OPPONENT_HAND; + nbzones++; + zones[nbzones] = MTGGameZone::MY_EXILE; + nbzones++; + zones[nbzones] = MTGGameZone::OPPONENT_EXILE; }else if(zoneName.compare("stack") == 0){ zones[nbzones] = MTGGameZone::MY_STACK; nbzones++;