From 5cbc8e4b4a9106107d3621ede276489fee8435a0 Mon Sep 17 00:00:00 2001 From: "wagic.the.homebrew@gmail.com" Date: Mon, 21 Jun 2010 12:25:38 +0000 Subject: [PATCH] Erwan - fix issue 425 (Echo) --- JGE/lib/win/jge.lib | Bin 2487018 -> 2502836 bytes projects/mtg/bin/Res/sets/primitives/mtg.txt | 106 ++++++++++-------- projects/mtg/bin/Res/test/_tests.txt | 1 + .../mtg/bin/Res/test/pouncing_jaguar_i425.txt | 31 +++++ 4 files changed, 92 insertions(+), 46 deletions(-) create mode 100644 projects/mtg/bin/Res/test/pouncing_jaguar_i425.txt diff --git a/JGE/lib/win/jge.lib b/JGE/lib/win/jge.lib index 67c221542b0c899244a4f9c4eb4dab4c0a6294db..46aba643133d5d97a74288d91852091e6c8aacff 100644 GIT binary patch delta 25231 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 Ts*mj@ni|VRezYGY8^# diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index 4bdbeac95..9e8312b0e 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -306,7 +306,7 @@ type=Sorcery [/card] [card] name=Acridian -auto=upcost[{1}{G},next upkeep] moveTo(graveyard) +auto=upcost[{1}{G};next upkeep] moveTo(graveyard) text=Echo {1}{G} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) mana={1}{G} type=Creature @@ -818,7 +818,7 @@ type=Instant [/card] [card] name=Albino Troll -auto=upcost[{1}{G},next upkeep] moveTo(graveyard) +auto=upcost[{1}{G};next upkeep] moveTo(graveyard) auto={1}{G}:regenerate text=Echo {1}{G} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) -- {1}{G}: Regenerate Albino Troll. mana={1}{G} @@ -2673,7 +2673,7 @@ toughness=4 name=Avalanche Riders abilities=haste auto=destroy target(land) -auto=upcost[{3}{R},next upkeep] moveTo(graveyard) +auto=upcost[{3}{R};next upkeep] moveTo(graveyard) text=Haste -- Echo {3}{R} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) -- When Avalanche Riders enters the battlefield, destroy target land. mana={3}{R} type=Creature @@ -3476,7 +3476,7 @@ toughness=2 name=Basalt Gargoyle abilities=flying auto={R}:0/1 -auto=upcost[{2}{R},next upkeep] moveTo(graveyard) +auto=upcost[{2}{R};next upkeep] moveTo(graveyard) text=Flying -- Echo {2}{R} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) -- {R}: Basalt Gargoyle gets +0/+1 until end of turn. mana={2}{R} type=Creature @@ -5290,7 +5290,7 @@ subtype=Equipment name=Bone Shredder abilities=flying auto=destroy target(creature[-black;-artifact]) -auto=upcost[{2}{B},next upkeep] moveTo(graveyard) +auto=upcost[{2}{B};next upkeep] moveTo(graveyard) text=Flying -- Echo {2}{B} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) -- When Bone Shredder enters the battlefield, destroy target nonartifact, nonblack creature. mana={2}{B} type=Creature @@ -7829,7 +7829,7 @@ type=Enchantment [card] name=Citanul Centaurs abilities=shroud -auto=upcost[{3}{G},next upkeep] moveTo(graveyard) +auto=upcost[{3}{G};next upkeep] moveTo(graveyard) text=Shroud (This permanent can't be the target of spells or abilities.) -- Echo {3}{G} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) mana={3}{G} type=Creature @@ -9035,7 +9035,7 @@ subtype=Aura [card] name=Cradle Guard abilities=trample -auto=upcost[{1}{G}{G},next upkeep] moveTo(graveyard) +auto=upcost[{1}{G}{G};next upkeep] moveTo(graveyard) text=Trample -- Echo {1}{G}{G} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) mana={1}{G}{G} type=Creature @@ -9097,7 +9097,7 @@ toughness=4 [card] name=Crater Hellion auto=damage:4 all(other creature) -auto=upcost[{4}{R}{R},next upkeep] moveTo(graveyard) +auto=upcost[{4}{R}{R};next upkeep] moveTo(graveyard) text=Echo {4}{R}{R} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) -- When Crater Hellion enters the battlefield, it deals 4 damage to each other creature. mana={4}{R}{R} type=Creature @@ -10709,7 +10709,7 @@ toughness=7 [card] name=Deepcavern Imp abilities=flying,haste -auto=upcost[{S(*|myhand)},next upkeep] moveTo(graveyard) +auto=upcost[{S(*|myhand)};next upkeep] moveTo(graveyard) text=Flying, haste -- Echo - Discard a card. (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) mana={2}{B} type=Creature @@ -10974,7 +10974,7 @@ type=Enchantment name=Deranged Hermit auto=token(Squirrel,creature token squirrel,1/1,green)*4 auto=lord(squirrel) 1/1 -auto=upcost[{3}{G}{G},next upkeep] moveTo(graveyard) +auto=upcost[{3}{G}{G};next upkeep] moveTo(graveyard) text=Echo {3}{G}{G} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) -- When Deranged Hermit enters the battlefield, put four 1/1 green Squirrel creature tokens onto the battlefield. -- Squirrel creatures get +1/+1. mana={3}{G}{G} type=Creature @@ -13782,7 +13782,7 @@ toughness=1 [card] name=Endless Wurm abilities=trample -auto=upcost[{S(enchantment|myBattlefield)}] moveTo(mygraveyard) +auto=@each my upkeep:moveTo(graveyard) notatarget(this,enchantment|myBattlefield) text=Trample -- At the beginning of your upkeep, sacrifice Endless Wurm unless you sacrifice an enchantment. mana={3}{G}{G} type=Creature @@ -14503,7 +14503,7 @@ mana={4}{B}{B} [card] name=Extruder auto={S(artifact|myBattlefield)}:counter(1/1,1) target(creature) -auto=upcost[{4},next upkeep] moveTo(graveyard) +auto=upcost[{4};next upkeep] moveTo(graveyard) text=Echo {4} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) -- Sacrifice an artifact: Put a +1/+1 counter on target creature. mana={4} type=Artifact Creature @@ -15539,7 +15539,7 @@ toughness=3 name=Firemaw Kavu auto=damage:2 target(creature) auto=@movedTo(this|exile,graveyard,hand,library) from(battlefield):damage:4 target(creature) -auto=upcost[{5}{R},next upkeep] moveTo(graveyard) +auto=upcost[{5}{R};next upkeep] moveTo(graveyard) text=Echo {5}{R} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) -- When Firemaw Kavu enters the battlefield, it deals 2 damage to target creature. -- When Firemaw Kavu leaves the battlefield, it deals 4 damage to target creature. mana={5}{R} type=Creature @@ -15749,7 +15749,7 @@ type=Sorcery [/card] [card] name=Flamecore Elemental -auto=upcost[{2}{R}{R},next upkeep] moveTo(graveyard) +auto=upcost[{2}{R}{R};next upkeep] moveTo(graveyard) text=Echo {2}{R}{R} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) mana={2}{R}{R} type=Creature @@ -17356,7 +17356,7 @@ toughness=2 [card] name=Ghitu Slinger auto=damage:2 target(creature,player) -auto=upcost[{2}{R},next upkeep] moveTo(graveyard) +auto=upcost[{2}{R};next upkeep] moveTo(graveyard) text=Echo {2}{R} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) -- When Ghitu Slinger enters the battlefield, it deals 2 damage to target creature or player. mana={2}{R} type=Creature @@ -18307,7 +18307,7 @@ type=Sorcery name=Goblin Marshal auto=token(Goblin,creature token goblin,1/1,red)*2 auto=@movedTo(this|graveyard) from(battlefield):token(Goblin,creature token goblin,1/1,red)*2 -auto=upcost[{4}{R}{R},next upkeep] moveTo(graveyard) +auto=upcost[{4}{R}{R};next upkeep] moveTo(graveyard) text=Echo {4}{R}{R} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) -- When Goblin Marshal enters the battlefield or is put into a graveyard from the battlefield, put two 1/1 red Goblin creature tokens onto the battlefield. mana={4}{R}{R} type=Creature @@ -18386,7 +18386,7 @@ toughness=2 [/card] [card] name=Goblin Patrol -auto=upcost[{R},next upkeep] moveTo(graveyard) +auto=upcost[{R};next upkeep] moveTo(graveyard) text=Echo {R} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) mana={R} type=Creature @@ -18593,7 +18593,7 @@ toughness=1 [card] name=Goblin War Buggy abilities=haste -auto=upcost[{1}{R},next upkeep] moveTo(graveyard) +auto=upcost[{1}{R};next upkeep] moveTo(graveyard) text=Haste -- Echo {1}{R} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) mana={1}{R} type=Creature @@ -19835,7 +19835,7 @@ toughness=3 [card] name=Hammerheim Deadeye auto=destroy target(creature[flying]) -auto=upcost[{5}{R},next upkeep] moveTo(graveyard) +auto=upcost[{5}{R};next upkeep] moveTo(graveyard) text=Echo {5}{R} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) -- When Hammerheim Deadeye enters the battlefield, destroy target creature with flying. mana={3}{R} type=Creature @@ -20600,7 +20600,7 @@ toughness=4 name=Henchfiend of Ukor abilities=haste auto={BR}:1/0 -auto=upcost[{1}{B},next upkeep] moveTo(graveyard) +auto=upcost[{1}{B};next upkeep] moveTo(graveyard) text=Haste -- Echo {1}{B} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice this permanent unless you pay its echo cost.) -- {(b/r)}: Henchfiend of Ukor gets +1/+0 until end of turn. mana={3}{R} type=Creature @@ -20632,7 +20632,7 @@ type=Land [card] name=Herald of Serra abilities=flying,vigilance -auto=upcost[{2}{W}{W},next upkeep] moveTo(graveyard) +auto=upcost[{2}{W}{W};next upkeep] moveTo(graveyard) text=Flying, vigilance -- Echo {2}{W}{W} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) mana={2}{W}{W} type=Creature @@ -21522,7 +21522,7 @@ toughness=3 name=Hunting Moa auto=counter(1/1,1) target(creature) auto=@movedTo(this|graveyard) from(battlefield):counter(1/1,1) target(creature) -auto=upcost[{2}{G},next upkeep] moveTo(graveyard) +auto=upcost[{2}{G};next upkeep] moveTo(graveyard) text=Echo {2}{G} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) -- When Hunting Moa enters the battlefield or is put into a graveyard from the battlefield, put a +1/+1 counter on target creature. mana={2}{G} type=Creature @@ -23703,7 +23703,7 @@ type=Enchantment name=Karmic Guide abilities=flying,protection from black auto=moveTo(myBattlefield) target(creature|mygraveyard) -auto=upcost[{3}{W}{W},next upkeep] moveTo(graveyard) +auto=upcost[{3}{W}{W};next upkeep] moveTo(graveyard) text=Flying, protection from black -- Echo {3}{W}{W} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) -- When Karmic Guide enters the battlefield, return target creature card from your graveyard to the battlefield. mana={3}{W}{W} type=Creature @@ -24105,7 +24105,7 @@ toughness=5 name=Keldon Champion abilities=haste auto=damage:3 target(player) -auto=upcost[{2}{R}{R},next upkeep] moveTo(graveyard) +auto=upcost[{2}{R}{R};next upkeep] moveTo(graveyard) text=Haste -- Echo {2}{R}{R} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) -- When Keldon Champion enters the battlefield, it deals 3 damage to target player. mana={2}{R}{R} type=Creature @@ -24148,7 +24148,7 @@ type=Legendary Land [card] name=Keldon Vandals auto=destroy target(artifact) -auto=upcost[{2}{R},next upkeep] moveTo(graveyard) +auto=upcost[{2}{R};next upkeep] moveTo(graveyard) text=Echo {2}{R} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) -- When Keldon Vandals enters the battlefield, destroy target artifact. mana={2}{R} type=Creature @@ -26040,7 +26040,7 @@ type=Instant name=Lightning Dragon abilities=flying auto={R}:1/0 -auto=upcost[{2}{R}{R},next upkeep] moveTo(graveyard) +auto=upcost[{2}{R}{R};next upkeep] moveTo(graveyard) text=Flying -- Echo {2}{R}{R} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) -- {R}: Lightning Dragon gets +1/+0 until end of turn. mana={2}{R}{R} type=Creature @@ -28926,7 +28926,7 @@ toughness=3 name=Mogg War Marshal auto=token(Goblin,creature token goblin,1/1,red) auto=@movedTo(this|graveyard) from(battlefield):token(Goblin,creature token goblin,1/1,red) -auto=upcost[{1}{R},next upkeep] moveTo(graveyard) +auto=upcost[{1}{R};next upkeep] moveTo(graveyard) text=Echo {1}{R} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) -- When Mogg War Marshal enters the battlefield or is put into a graveyard from the battlefield, put a 1/1 red Goblin creature token onto the battlefield. mana={1}{R} type=Creature @@ -29657,7 +29657,7 @@ toughness=* [card] name=Multani's Acolyte auto=draw:1 -auto=upcost[{G}{G},next upkeep] moveTo(graveyard) +auto=upcost[{G}{G};next upkeep] moveTo(graveyard) text=Echo {G}{G} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) -- When Multani's Acolyte enters the battlefield, draw a card. mana={G}{G} type=Creature @@ -31040,6 +31040,13 @@ mana={3} type=Artifact [/card] [card] +name=Null Brooch +auto={2}{T}:fizzle target(*[-creature]|stack) && moveTo(graveyard) all(*|myhand) +text={2}, {T}, Discard your hand: Counter target noncreature spell. +mana={4} +type=Artifact +[/card] +[card] name=Null Champion auto={3}:counter(0/0,1,Level Up) asSorcery auto=this(counter{0/0.1.Level Up}) 3/1 @@ -31435,7 +31442,7 @@ kicker={G}{G}{G} auto=kicker token(-483851111) auto=may token(Beast,creature beast, 5/5,green) auto=may token(Insect,creature insect, 1/1,green)*5 -text=Choose one Put a 5/5 green Beast creature token onto the battlefield; or put five 1/1 green Insect creature tokens onto the battlefield. -- Entwine {G}{G}{G} (Choose both if you pay the entwine cost.) +text=Choose one EPut a 5/5 green Beast creature token onto the battlefield; or put five 1/1 green Insect creature tokens onto the battlefield. -- Entwine {G}{G}{G} (Choose both if you pay the entwine cost.) mana={5}{G} type=Sorcery [/card] @@ -33550,7 +33557,7 @@ toughness=2 [/card] [card] name=Pouncing Jaguar -auto=upcost[{G},next upkeep] moveTo(graveyard) +auto=upcost[{G};next upkeep] moveTo(graveyard) text=Echo {G} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) mana={G} type=Creature @@ -33657,6 +33664,13 @@ mana={1}{U} type=Instant [/card] [card] +name=Presence of the Master +auto=@movedTo(enchantment|stack):fizzle all(enchantment|stack) +text=Whenever a player casts an enchantment spell, counter it. +mana={3}{W} +type=Enchantment +[/card] +[card] name=Presence of the Wise auto=foreach(*|myhand) life:2 controller text=You gain 2 life for each card in your hand. @@ -34516,7 +34530,7 @@ toughness=3 [card] name=Radiant's Dragoons auto=life:5 -auto=upcost[{3}{W},next upkeep] moveTo(graveyard) +auto=upcost[{3}{W};next upkeep] moveTo(graveyard) text=Echo {3}{W} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) -- When Radiant's Dragoons enters the battlefield, you gain 5 life. mana={3}{W} type=Creature @@ -36238,7 +36252,7 @@ toughness=2 [card] name=Ring of Gix auto={1}{T}:tap target(artifact,creature,land) -auto=upcost[{3},next upkeep] moveTo(graveyard) +auto=upcost[{3};next upkeep] moveTo(graveyard) text=Echo {3} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) -- {1}, {T}: Tap target artifact, creature, or land. mana={3} type=Artifact @@ -39460,7 +39474,7 @@ toughness=4 [card] name=Shivan Raptor abilities=first strike,haste -auto=upcost[{2}{R},next upkeep] moveTo(graveyard) +auto=upcost[{2}{R};next upkeep] moveTo(graveyard) text=First strike, haste -- Echo {2}{R} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) mana={2}{R} type=Creature @@ -40056,7 +40070,7 @@ toughness=3 [card] name=Simian Grunts abilities=flash -auto=upcost[{2}{G},next upkeep] moveTo(graveyard) +auto=upcost[{2}{G};next upkeep] moveTo(graveyard) text=Flash -- Echo {2}{G} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) mana={2}{G} type=Creature @@ -43293,7 +43307,7 @@ toughness=0 [card] name=Stingscourger auto=moveTo(ownerhand) target(creature|opponentbattlefield) -auto=upcost[{3}{R},next upkeep] moveTo(graveyard) +auto=upcost[{3}{R};next upkeep] moveTo(graveyard) text=Echo {3}{R} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) -- When Stingscourger enters the battlefield, return target creature an opponent controls to its owner's hand. mana={1}{R} type=Creature @@ -43916,7 +43930,7 @@ toughness=4 name=Subterranean Shambler auto=damage:1 all(creature[-flying]) && damage:1 all(player) auto=@movedTo(this|exile,graveyard,hand,library) from(battlefield):damage:1 all(creature[-flying]) && damage:1 all(player) -auto=upcost[{3}{R},next upkeep] moveTo(graveyard) +auto=upcost[{3}{R};next upkeep] moveTo(graveyard) text=Echo {3}{R} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) -- When Subterranean Shambler enters the battlefield or leaves the battlefield, it deals 1 damage to each creature without flying. mana={3}{R} type=Creature @@ -45091,7 +45105,7 @@ type=Land [card] name=Tectonic Fiend abilities=mustattack -auto=upcost[{4}{R}{R},next upkeep] moveTo(graveyard) +auto=upcost[{4}{R}{R};next upkeep] moveTo(graveyard) text=Echo {4}{R}{R} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) -- Tectonic Fiend attacks each turn if able. mana={4}{R}{R} type=Creature @@ -46028,7 +46042,7 @@ type=Land [card] name=Thran war Machine abilities=mustattack -auto=upcost[{4},next upkeep] moveTo(graveyard) +auto=upcost[{4};next upkeep] moveTo(graveyard) text=Echo {4} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) -- Thran War Machine attacks each turn if able. mana={4} type=Artifact Creature @@ -46286,7 +46300,7 @@ toughness=3 [card] name=Ticking Gnomes auto={S}:damage:1 target(creature,player) -auto=upcost[{3},next upkeep] moveTo(graveyard) +auto=upcost[{3};next upkeep] moveTo(graveyard) text=Echo {3} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) -- Sacrifice Ticking Gnomes: Ticking Gnomes deals 1 damage to target creature or player. mana={3} type=Artifact Creature @@ -46468,7 +46482,7 @@ type=Land name=Timbermare abilities=haste auto=tap all(other creature) -auto=upcost[{5}{G},next upkeep] moveTo(graveyard) +auto=upcost[{5}{G};next upkeep] moveTo(graveyard) text=Haste -- Echo {5}{G} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) -- When Timbermare enters the battlefield, tap all other creatures. mana={3}{G} type=Creature @@ -47803,7 +47817,7 @@ toughness=4 [card] name=Uktabi Drake abilities=flying,haste -auto=upcost[{1}{G}{G},next upkeep] moveTo(graveyard) +auto=upcost[{1}{G}{G};next upkeep] moveTo(graveyard) text=Flying, haste -- Echo {1}{G}{G} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) mana={G} type=Creature @@ -48372,7 +48386,7 @@ toughness=3 [card] name=Urza's Blueprints auto={T}:draw:1 -auto=upcost[{6},next upkeep] moveTo(graveyard) +auto=upcost[{6};next upkeep] moveTo(graveyard) text=Echo {6} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) -- {T}: Draw a card. mana={6} type=Artifact @@ -49185,7 +49199,7 @@ toughness=1 [/card] [card] name=Viashino Outrider -auto=upcost[{2}{R},next upkeep] moveTo(graveyard) +auto=upcost[{2}{R};next upkeep] moveTo(graveyard) text=Echo {2}{R} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) mana={2}{R} type=Creature @@ -50069,7 +50083,7 @@ toughness=1 [card] name=Vug Lizard abilities=mountainwalk -auto=upcost[{1}{R}{R},next upkeep] moveTo(graveyard) +auto=upcost[{1}{R}{R};next upkeep] moveTo(graveyard) text=Mountainwalk -- Echo {1}{R}{R} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) mana={1}{R}{R} type=Creature @@ -51652,7 +51666,7 @@ toughness=7 [/card] [card] name=Winding Wurm -auto=upcost[{4}{G},next upkeep] moveTo(graveyard) +auto=upcost[{4}{G};next upkeep] moveTo(graveyard) text=Echo {4}{G} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) mana={4}{G} type=Creature @@ -52495,7 +52509,7 @@ toughness=1 [card] name=Yavimaya Granger auto=moveTo(myBattlefield) target(land[basic]|myLibrary) && tap -auto=upcost[{2}{G},next upkeep] moveTo(graveyard) +auto=upcost[{2}{G};next upkeep] moveTo(graveyard) text=Echo {2}{G} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) -- When Yavimaya Granger enters the battlefield, you may search your library for a basic land card, put that card onto the battlefield tapped, then shuffle your library. mana={2}{G} type=Creature diff --git a/projects/mtg/bin/Res/test/_tests.txt b/projects/mtg/bin/Res/test/_tests.txt index 04cebff96..36cb3eadf 100644 --- a/projects/mtg/bin/Res/test/_tests.txt +++ b/projects/mtg/bin/Res/test/_tests.txt @@ -344,6 +344,7 @@ paralysis2.txt persuasion.txt plague_rats.txt plumes_of_peace_i260.txt +pouncing_jaguar_i425.txt promise_of_bunrei_i305.txt prosperity.txt protomatter_powder.txt diff --git a/projects/mtg/bin/Res/test/pouncing_jaguar_i425.txt b/projects/mtg/bin/Res/test/pouncing_jaguar_i425.txt new file mode 100644 index 000000000..866d1f5cf --- /dev/null +++ b/projects/mtg/bin/Res/test/pouncing_jaguar_i425.txt @@ -0,0 +1,31 @@ +#Bug: Echo doesn't work +# http://code.google.com/p/wagic/issues/detail?id=425 +[INIT] +SECONDMAIN +[PLAYER1] +manapool:{G} +inplay:forest +hand:pouncing jaguar +[PLAYER2] +[DO] +pouncing jaguar +eot +eot +next +#upkeep +forest +pouncing jaguar +eot +eot +next +#upkeep +next +#draw +next +#main +[ASSERT] +FIRSTMAIN +[PLAYER1] +inplay:pouncing jaguar,forest +[PLAYER2] +[END] \ No newline at end of file