Psyringe - 5DN overhaul: added 6 cards (some borderline) and fixed 11 bugs. Added test scripts for most added cards. Please check/review as I'm still inexperienced with card code.

Additions:
- Added Avarice Totem. Code works, but uses a trick to circumvent a parser limitation. Feedback welcome.
- Added Fangren Pathcutter. Code works, but will fail if Fangren Pathcutter gets removed during the combatattackers phase (currently unlikely though). Feedback welcome.
- Added Goblin Cannon (spectacularly useless card, but codeable)
- Added Silent Arbiter (code works pretty well imho)
- Added Skullcage (doesn't work correctly yet due to bug; issue will be opened shortly)
- Added Thought Courier (has wrong sequence of actions, but is acceptable imho)

Bugfixes:
- Arachnoid didn't have Reach
- Battered Golem was missing a "may"
- softcoded Beacon of Creation
- Beacon of Destruction was missing an alias
- Beacon of Immortality was missing an alias
- Cackling Imp couldn't use its ability
- removed Crucible of Worlds (didn't work on several accounts)
- Krark-Clan Ironworks had an incorrect {T} cost
- Krark-Clan Ogre had an incorrect cost
- Screaming Fury was missing a target
- Skyhunter Skirmisher had double strike spelled wrong

Other:
- experimented with several more cards but couldn't implement them correctly, check the comments in todo.dat for details.
This commit is contained in:
Psyyringe
2009-12-08 08:39:34 +00:00
parent c13b178b5a
commit 0ec6c7bf37
17 changed files with 492 additions and 119 deletions
+94 -21
View File
@@ -9,7 +9,7 @@ mana={3}{U}{U}
type=Sorcery type=Sorcery
[/card] [/card]
[card] [card]
text={U}: Advanced Hoverguard gains shroud until end of turn. (It can't be the target of spells or abilities.) text=Flying -- {U}: Advanced Hoverguard gains shroud until end of turn. (It can't be the target of spells or abilities.)
id=50144 id=50144
name=Advanced Hoverguard name=Advanced Hoverguard
rarity=C rarity=C
@@ -35,6 +35,7 @@ toughness=3
[/card] [/card]
[card] [card]
text=Reach (This creature can block creatures with flying.) text=Reach (This creature can block creatures with flying.)
abilities=reach
id=51230 id=51230
name=Arachnoid name=Arachnoid
rarity=U rarity=U
@@ -47,7 +48,7 @@ toughness=6
[card] [card]
text=Protection from black and from red Whenever another creature enters the battlefield, you may gain 1 life. text=Protection from black and from red Whenever another creature enters the battlefield, you may gain 1 life.
id=72921 id=72921
auto=@movedTo(creature|battlefield):may life:1 auto=@movedTo(creature|battlefield):may life:1 controller
name=Auriok Champion name=Auriok Champion
rarity=R rarity=R
mana={W}{W} mana={W}{W}
@@ -58,8 +59,21 @@ toughness=1
abilities=protection from black,protection from red abilities=protection from black,protection from red
[/card] [/card]
[card] [card]
id=39667
name=Avarice Totem
mana={1}
type=Artifact
text={5}: Exchange control of Avarice Totem and target nonland permanent.
# Note: The term all(this) is a workaround for a current parser
# limitation. We cannot chain effects on a target card to effects
# on "this" - if we do it, the the parser confuses and ignores
# targets. But we CAN chain "target"ed effects to "all()" effects.
auto={5}:moveto(mybattlefield) target(*[-land]|opponentbattlefield) && moveto(opponentbattlefield) all(this)
rarity=U
[/card]
[card]
text=Battered Golem doesn't untap during your untap step. Whenever an artifact enters the battlefield, you may untap Battered Golem. text=Battered Golem doesn't untap during your untap step. Whenever an artifact enters the battlefield, you may untap Battered Golem.
auto=@movedTo(creature|battlefield):untap auto=@movedTo(artifact|battlefield):may untap
id=73932 id=73932
name=Battered Golem name=Battered Golem
rarity=C rarity=C
@@ -72,10 +86,10 @@ abilities=doesnotuntap
[/card] [/card]
[card] [card]
text=Put a 1/1 green Insect creature token onto the battlefield for each Forest you control. Shuffle Beacon of Creation into its owner's library. text=Put a 1/1 green Insect creature token onto the battlefield for each Forest you control. Shuffle Beacon of Creation into its owner's library.
alias=135262
id=51613 id=51613
name=Beacon of Creation name=Beacon of Creation
auto=foreach(forest|mybattlefield) token(Insect,Creature insect,1/1,green) auto=foreach(forest|mybattlefield) token(Insect,Creature insect,1/1,green)
auto=moveto(mylibrary) && shuffle
rarity=R rarity=R
mana={3}{G} mana={3}{G}
type=Sorcery type=Sorcery
@@ -86,6 +100,7 @@ id=51612
name=Beacon of Destruction name=Beacon of Destruction
target=creature,player target=creature,player
auto=damage:5 auto=damage:5
alias=135262
rarity=R rarity=R
mana={3}{R}{R} mana={3}{R}{R}
type=Instant type=Instant
@@ -93,6 +108,7 @@ type=Instant
[card] [card]
text=Double target player's life total. Shuffle Beacon of Immortality into its owner's library. text=Double target player's life total. Shuffle Beacon of Immortality into its owner's library.
id=50141 id=50141
alias=130553
target=player target=player
name=Beacon of Immortality name=Beacon of Immortality
rarity=R rarity=R
@@ -133,10 +149,9 @@ power=3
toughness=3 toughness=3
[/card] [/card]
[card] [card]
text={T}: Target player loses 1 life. text=Flying -- {T}: Target player loses 1 life.
id=73597 id=73597
auto={T}:life-1 controller auto={T}:life:-1 target(player)
auto={T}:life-1 opponent
name=Cackling Imp name=Cackling Imp
rarity=C rarity=C
mana={2}{B}{B} mana={2}{B}{B}
@@ -168,15 +183,6 @@ power=4
toughness=4 toughness=4
[/card] [/card]
[card] [card]
text=You may play land cards from your graveyard.
auto={0}:may moveTo(myBattlefield) target(land|mygraveyard) limit:1 myTurnOnly
id=51133
name=Crucible of Worlds
rarity=R
mana={3}
type=Artifact
[/card]
[card]
text=Destroy target creature. It can't be regenerated. You lose life equal to that creature's toughness. text=Destroy target creature. It can't be regenerated. You lose life equal to that creature's toughness.
id=50210 id=50210
target=creature target=creature
@@ -223,6 +229,23 @@ power=2
toughness=1 toughness=1
[/card] [/card]
[card] [card]
id=50171
name=Fangren Pathcutter
mana={4}{G}{G}
type=Creature
subtype=Beast
power=4
toughness=6
text=Whenever Fangren Pathcutter attacks, attacking creatures gain trample until end of turn.
# Note: Coded as a triggered conditional "all" effect. This
# makes sure that the effect doesn't get removed if Fangren
# Pathcutter leaves play.
auto=@each combatblockers:aslongas(Fangren Pathcutter[attacking]) all(creature[attacking]) Trample ueot
# Note: above line does not give the Trample bonus when Fangren
# Pathcutter leaves play before the combatblockers step starts.
rarity=U
[/card]
[card]
text=Feedback Bolt deals damage to target player equal to the number of artifacts you control. text=Feedback Bolt deals damage to target player equal to the number of artifacts you control.
id=46108 id=46108
name=Feedback Bolt name=Feedback Bolt
@@ -270,6 +293,15 @@ toughness=2
abilities=first strike abilities=first strike
[/card] [/card]
[card] [card]
id=48215
name=Goblin Cannon
mana={4}
type=Artifact
text={2}: Goblin Cannon deals 1 damage to target creature or player. Sacrifice Goblin Cannon.
auto={2}{S}:damage:1 target(creature,player)
rarity=U
[/card]
[card]
text={T}, Sacrifice an artifact: Target player puts the top three cards of his or her library into his or her graveyard. Whenever an artifact enters the battlefield, you may untap Grinding Station text={T}, Sacrifice an artifact: Target player puts the top three cards of his or her library into his or her graveyard. Whenever an artifact enters the battlefield, you may untap Grinding Station
auto=@movedTo(artifact|battlefield):may untap auto=@movedTo(artifact|battlefield):may untap
auto={T}{S(artifact|myBattlefield)}:deplete:3 target(player) auto={T}{S(artifact|myBattlefield)}:deplete:3 target(player)
@@ -309,7 +341,7 @@ toughness=1
[/card] [/card]
[card] [card]
text=Sacrifice an artifact: Add {2} to your mana pool. text=Sacrifice an artifact: Add {2} to your mana pool.
auto={T}{S(artifact|myBattlefield)}:Add:{2} auto={S(artifact|myBattlefield)}:Add:{2}
id=51633 id=51633
name=Krark-Clan Ironworks name=Krark-Clan Ironworks
rarity=U rarity=U
@@ -324,7 +356,7 @@ rarity=C
mana={3}{R}{R} mana={3}{R}{R}
type=Creature type=Creature
subtype=Ogre subtype=Ogre
auto={T}{S(artifact|myBattlefield)}:cantblock target(creature) auto={R}{S(artifact|myBattlefield)}:cantblock target(creature)
power=3 power=3
toughness=3 toughness=3
[/card] [/card]
@@ -332,7 +364,7 @@ toughness=3
text=Vigilance {W}: Loxodon Stalwart gets +0/+1 until end of turn. text=Vigilance {W}: Loxodon Stalwart gets +0/+1 until end of turn.
id=73567 id=73567
name=Loxodon Stalwart name=Loxodon Stalwart
abilities=vigilance abilities=Vigilance
rarity=U rarity=U
mana={3}{W}{W} mana={3}{W}{W}
type=Creature type=Creature
@@ -391,7 +423,7 @@ toughness=1
text=You draw two cards and you lose 2 life. text=You draw two cards and you lose 2 life.
id=51178 id=51178
name=Night's Whisper name=Night's Whisper
auto=draw:2 auto=draw:2 controller
auto=life:-2 controller auto=life:-2 controller
rarity=U rarity=U
mana={1}{B} mana={1}{B}
@@ -468,6 +500,7 @@ type=Sorcery
text=Target creature gets +5/+0 and gains haste until end of turn. text=Target creature gets +5/+0 and gains haste until end of turn.
id=51148 id=51148
name=Screaming Fury name=Screaming Fury
target=creature
auto=5/0 auto=5/0
auto=haste auto=haste
rarity=C rarity=C
@@ -475,6 +508,29 @@ mana={2}{R}
type=Sorcery type=Sorcery
[/card] [/card]
[card] [card]
id=73598
name=Silent Arbiter
mana={4}
type=Artifact Creature
subtype=Construct
power=1
toughness=5
text=No more than one creature can attack each combat. No more than one creature can block each combat.
auto=aslongas(creature[attacking]|battlefield) lord(creature[-attacking]|battlefield) cantattack
auto=aslongas(creature[blocking]|battlefield) lord(creature[-blocking]|battlefield) cantblock
rarity=R
[/card]
[card]
id=73926
name=Skullcage
mana={4}
type=Artifact
text=At the beginning of each opponent's upkeep, Skullcage deals 2 damage to that player unless he or she has exactly three or exactly four cards in hand.
auto=@each opponent upkeep:aslongas(*|opponenthand) damage:2 opponent >4
auto=@each opponent upkeep:aslongas(*|opponenthand) damage:2 opponent <3
rarity=U
[/card]
[card]
text=Flying, vigilance (This creature can't be blocked except by creatures with flying or reach, and attacking doesn't cause this creature to tap.) text=Flying, vigilance (This creature can't be blocked except by creatures with flying or reach, and attacking doesn't cause this creature to tap.)
id=50136 id=50136
name=Skyhunter Prowler name=Skyhunter Prowler
@@ -512,7 +568,7 @@ toughness=1
abilities=trample,haste abilities=trample,haste
[/card] [/card]
[card] [card]
text={1}: Untap Staff of Domination. {2}, {T}: You gain 1 life. {3}, {T}: Untap target creatur {4}, {T}: Tap target creature. {5}, {T}: Draw a card. text={1}: Untap Staff of Domination. {2}, {T}: You gain 1 life. {3}, {T}: Untap target creature {4}, {T}: Tap target creature. {5}, {T}: Draw a card.
auto={1}:untap auto={1}:untap
auto={2}{T}:life:1 controller auto={2}{T}:life:1 controller
auto={3}{T}:untap target(creature) auto={3}{T}:untap target(creature)
@@ -536,6 +592,8 @@ type=Artifact
[/card] [/card]
[card] [card]
text=Whenever Tangle Asp blocks or becomes blocked by a creature, destroy that creature at end of combat. text=Whenever Tangle Asp blocks or becomes blocked by a creature, destroy that creature at end of combat.
# Note: The alias isn't entirely correct since the Cockatrice's
# ability doesn't affect walls, but Tangle Asp's should.
alias=1238 alias=1238
id=50203 id=50203
name=Tangle Asp name=Tangle Asp
@@ -571,6 +629,21 @@ power=2
toughness=2 toughness=2
[/card] [/card]
[card] [card]
id=73570
name=Thought Courier
mana={1}{U}
type=Creature
subtype=Human Wizard
power=1
toughness=1
text={T}: Draw a card, then discard a card.
# Note: Following line is not entirely correct. The game
# requires you to discard a card *before* you can draw
# then new one.
auto={T}:draw:1 controller && moveto(mygraveyard) target(*|myhand)
rarity=U
[/card]
[card]
text={1}{G}: Tyrranax gets -1/+1 until end of turn. text={1}{G}: Tyrranax gets -1/+1 until end of turn.
id=50191 id=50191
name=Tyrranax name=Tyrranax
+48 -96
View File
@@ -3,18 +3,10 @@ id=50164
name=Abuna's Chant name=Abuna's Chant
mana={3}{W} mana={3}{W}
type=Instant type=Instant
text=Choose one :・You gain 5 life; or prevent the next 5 damage that would be dealt to target creature this turn. Entwine {2} (Choose both if you pay the entwine cost.) text=Choose one: You gain 5 life; or prevent the next 5 damage that would be dealt to target creature this turn. Entwine {2} (Choose both if you pay the entwine cost.)
rarity=C rarity=C
[/card] [/card]
[card] [card]
id=51088
name=Acquire
mana={3}{U}{U}
type=Sorcery
text=Search target opponent's library for an artifact card and put that card onto the battlefield under your control. Then that player shuffles his or her library.
rarity=R
[/card]
[card]
id=51221 id=51221
name=All Suns' Dawn name=All Suns' Dawn
mana={4}{G} mana={4}{G}
@@ -30,7 +22,7 @@ type=Artifact Creature
subtype=Golem subtype=Golem
power=0 power=0
toughness=0 toughness=0
text=Modular窶粘unburst (This enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it. When it's put into a graveyard, you may put its +1/+1 counters on target artifact creature.) text=Modular -- Sunburst (This enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it. When it's put into a graveyard, you may put its +1/+1 counters on target artifact creature.)
rarity=U rarity=U
[/card] [/card]
[card] [card]
@@ -72,14 +64,6 @@ text=Flying {T}: Attach target Equipment you control to target creature you cont
rarity=R rarity=R
[/card] [/card]
[card] [card]
id=39667
name=Avarice Totem
mana={1}
type=Artifact
text={5}: Exchange control of Avarice Totem and target nonland permanent.
rarity=U
[/card]
[card]
id=51375 id=51375
name=Baton of Courage name=Baton of Courage
mana={3} mana={3}
@@ -88,14 +72,6 @@ text=Flash Sunburst (This enters the battlefield with a charge counter on it for
rarity=C rarity=C
[/card] [/card]
[card] [card]
id=50141
name=Beacon of Immortality
mana={5}{W}
type=Instant
text=Double target player's life total. Shuffle Beacon of Immortality into its owner's library.
rarity=R
[/card]
[card]
id=51610 id=51610
name=Beacon of Tomorrows name=Beacon of Tomorrows
mana={6}{U}{U} mana={6}{U}{U}
@@ -172,6 +148,12 @@ name=Chimeric Coils
mana={1} mana={1}
type=Artifact type=Artifact
text={X}{1}: Chimeric Coils becomes an X/X Construct artifact creature. Sacrifice it at the beginning of the next end step. text={X}{1}: Chimeric Coils becomes an X/X Construct artifact creature. Sacrifice it at the beginning of the next end step.
# Following line does not work: card does not become a creature
auto={X}{1}:becomes(construct artifact Creature,X/X)
# Following line does not work: we cannot chain triggers to paid abilities
auto={X}{1}:becomes(construct artifact Creature,X/X) && @next endofturn:bury
# Following line would be a very dirty & hackish replacement for the line above:
auto=@each endofturn:bury all(chimeric coils[construct])
rarity=U rarity=U
[/card] [/card]
[card] [card]
@@ -196,6 +178,10 @@ name=Clock of Omens
mana={4} mana={4}
type=Artifact type=Artifact
text=Tap two untapped artifacts you control: Untap target artifact. text=Tap two untapped artifacts you control: Untap target artifact.
# Following line does not work: Can't have several singular targets in one auto line
##auto={0}:tap target(artifact[-tapped]|myinplay) && tap target(artifact[-tapped]|myinplay) && untap target(artifact[tapped])
# Following line does not work: Can't specify tap targets in cost segment
auto={T(artifact[-tapped]|myinplay)}{T(artifact[-tapped]|myinplay)}:untap target(artifact[tapped])
rarity=U rarity=U
[/card] [/card]
[card] [card]
@@ -212,6 +198,8 @@ name=Conjurer's Bauble
mana={1} mana={1}
type=Artifact type=Artifact
text={T}, Sacrifice Conjurer's Bauble: Put up to one target card from your graveyard on the bottom of your library. Draw a card. text={T}, Sacrifice Conjurer's Bauble: Put up to one target card from your graveyard on the bottom of your library. Draw a card.
# Following line does not work: Cards added to library are always added on top
auto={T}{S}:moveto(ownerlibrary) target(*|mygraveyard) && draw:1 controller
rarity=C rarity=C
[/card] [/card]
[card] [card]
@@ -235,6 +223,21 @@ text=Equipped creature gets +1/+0 for each artifact you control. {B}{B}: Attach
rarity=C rarity=C
[/card] [/card]
[card] [card]
text=You may play land cards from your graveyard.
# Following line does not work: "May moveto" from graveyards does
# not work due to interface issues. The "limit:1" doesn't work
# here either. Even if both worked, then the card would allow
# you to play lands *in addition* to the 1 land you can play per
# turn. Instead it should just give you the option to play this
# 1 land from your hand or your graveyard.
auto={0}:may moveTo(myBattlefield) target(land|mygraveyard) limit:1 myTurnOnly
id=51133
name=Crucible of Worlds
rarity=R
mana={3}
type=Artifact
[/card]
[card]
id=51222 id=51222
name=Dawn's Reflection name=Dawn's Reflection
mana={3}{G} mana={3}{G}
@@ -252,6 +255,10 @@ subtype=Elemental
power=8 power=8
toughness=8 toughness=8
text=Fear (This creature can't be blocked except by artifact creatures and/or black creatures.) Whenever a player casts a spell, sacrifice a creature. text=Fear (This creature can't be blocked except by artifact creatures and/or black creatures.) Whenever a player casts a spell, sacrifice a creature.
# Following line does not work: triggered effects can't choose
# targets. (Also the effect could probably be canceled.)
auto=@movedto(*|stack):bury target(creature|mybattlefield)
abilities=Fear
rarity=R rarity=R
[/card] [/card]
[card] [card]
@@ -348,17 +355,6 @@ text=Whenever you cast an instant or sorcery spell, you may pay {1}. If you do,
rarity=U rarity=U
[/card] [/card]
[card] [card]
id=50171
name=Fangren Pathcutter
mana={4}{G}{G}
type=Creature
subtype=Beast
power=4
toughness=6
text=Whenever Fangren Pathcutter attacks, attacking creatures gain trample until end of turn.
rarity=U
[/card]
[card]
id=51617 id=51617
name=Ferocious Charge name=Ferocious Charge
mana={2}{G} mana={2}{G}
@@ -395,7 +391,7 @@ rarity=R
[/card] [/card]
[card] [card]
id=51631 id=51631
name=Fold into テ・her name=Fold into AEther
mana={2}{U}{U} mana={2}{U}{U}
type=Instant type=Instant
text=Counter target spell. If that spell is countered this way, its controller may put a creature card from his or her hand onto the battlefield. text=Counter target spell. If that spell is countered this way, its controller may put a creature card from his or her hand onto the battlefield.
@@ -410,14 +406,6 @@ text={2}: Put a charge counter on Gemstone Array. Remove a charge counter from G
rarity=U rarity=U
[/card] [/card]
[card] [card]
id=48215
name=Goblin Cannon
mana={4}
type=Artifact
text={2}: Goblin Cannon deals 1 damage to target creature or player. Sacrifice Goblin Cannon.
rarity=U
[/card]
[card]
id=50927 id=50927
name=Grafted Wargear name=Grafted Wargear
mana={3} mana={3}
@@ -521,6 +509,12 @@ subtype=Goblin Artificer
power=2 power=2
toughness=2 toughness=2
text={R}, Sacrifice two artifacts: Destroy target artifact. text={R}, Sacrifice two artifacts: Destroy target artifact.
# Following line doesn't work, or expects an extremely unintuitive
# input sequence. It would work with *one* sacrifice, the user
# then has to click on Engineers -> then target to destroy ->
# then artifavt to sacrifice. However I can't find a way to
# sacrifice *two* artifacts.
auto={R}{S(artifact|mybattlefield)}{S(artifact|mybattlefield)}:destroy target(artifact)
rarity=U rarity=U
[/card] [/card]
[card] [card]
@@ -622,17 +616,6 @@ text={3}: Switch Myr Quadropod's power and toughness until end of turn.
rarity=C rarity=C
[/card] [/card]
[card] [card]
id=50179
name=Myr Servitor
mana={1}
type=Artifact Creature
subtype=Myr
power=1
toughness=1
text=At the beginning of your upkeep, if Myr Servitor is on the battlefield, each player returns all cards named Myr Servitor from his or her graveyard to the battlefield.
rarity=C
[/card]
[card]
id=51183 id=51183
name=Neurok Stealthsuit name=Neurok Stealthsuit
mana={2} mana={2}
@@ -710,10 +693,12 @@ id=51190
name=Rain of Rust name=Rain of Rust
mana={3}{R}{R} mana={3}{R}{R}
type=Instant type=Instant
text=Choose one 窶・Destroy target artifact; or destroy target land. Entwine {3}{R} (Choose both if you pay the entwine cost.) text=Choose one: Destroy target artifact; or destroy target land. Entwine {3}{R} (Choose both if you pay the entwine cost.)
rarity=C rarity=C
[/card] [/card]
[card] [card]
# Note: Following card is currently implemented in _cards.dat,
# but will need to be updated once Equipment is implemented.
id=73569 id=73569
name=Raksha Golden Cub name=Raksha Golden Cub
mana={5}{W}{W} mana={5}{W}{W}
@@ -768,14 +753,9 @@ name=Rite of Passage
mana={2}{G} mana={2}{G}
type=Enchantment type=Enchantment
text=Whenever a creature you control is dealt damage, put a +1/+1 counter on it. (The damage is dealt before the counter is put on.) text=Whenever a creature you control is dealt damage, put a +1/+1 counter on it. (The damage is dealt before the counter is put on.)
rarity=R # Following line doesn't work: game tries to put the counter on
[/card] # Rite of Passage, not on the damaged creature.
[card] auto=@damaged(creature|mybattlefield):counter(1/1)
id=51080
name=Roar of Reclamation
mana={5}{W}{W}
type=Sorcery
text=Each player returns all artifact cards from his or her graveyard to the battlefield.
rarity=R rarity=R
[/card] [/card]
[card] [card]
@@ -822,25 +802,6 @@ text=Target opponent reveals his or her hand. You choose an artifact card from i
rarity=U rarity=U
[/card] [/card]
[card] [card]
id=73598
name=Silent Arbiter
mana={4}
type=Artifact Creature
subtype=Construct
power=1
toughness=5
text=No more than one creature can attack each combat. No more than one creature can block each combat.
rarity=R
[/card]
[card]
id=73926
name=Skullcage
mana={4}
type=Artifact
text=At the beginning of each opponent's upkeep, Skullcage deals 2 damage to that player unless he or she has exactly three or exactly four cards in hand.
rarity=U
[/card]
[card]
id=51374 id=51374
name=Skyreach Manta name=Skyreach Manta
mana={5} mana={5}
@@ -983,17 +944,6 @@ text=Destroy target artifact. Scry 2. (To scry 2, look at the top two cards of y
rarity=U rarity=U
[/card] [/card]
[card] [card]
id=73570
name=Thought Courier
mana={1}{U}
type=Creature
subtype=Human Wizard
power=1
toughness=1
text={T}: Draw a card, then discard a card.
rarity=U
[/card]
[card]
id=51161 id=51161
name=Tornado Elemental name=Tornado Elemental
mana={5}{G}{G} mana={5}{G}{G}
@@ -1021,6 +971,8 @@ name=Vedalken Orrery
mana={4} mana={4}
type=Artifact type=Artifact
text=You may cast nonland cards as though they had flash. text=You may cast nonland cards as though they had flash.
# Following line does not work: Lords cannot affect hand/stack?
auto=lord(-land|myhand) Flash
rarity=R rarity=R
[/card] [/card]
[card] [card]
+6
View File
@@ -84,10 +84,13 @@ ascendant_evincar3.txt
ashen_firebeast.txt ashen_firebeast.txt
ashen_firebeast2.txt ashen_firebeast2.txt
aura_mutation.txt aura_mutation.txt
avarice_totem.txt
baneslayer_angel.txt baneslayer_angel.txt
baneslayer_angel2.txt baneslayer_angel2.txt
barbed_sliver.txt barbed_sliver.txt
basal_sliver.txt basal_sliver.txt
beacon_of_creation.txt
beacon_of_destruction.txt
beacon_of_unrest.txt beacon_of_unrest.txt
belligerent_hatchling.txt belligerent_hatchling.txt
benalish_knight.txt benalish_knight.txt
@@ -161,6 +164,7 @@ elvish_promenade.txt
emblem_of_the_warmind.txt emblem_of_the_warmind.txt
enervate.txt enervate.txt
erg_raiders_i157.txt erg_raiders_i157.txt
fangren_pathcutter.txt
farhaven_elf.txt farhaven_elf.txt
farmstead.txt farmstead.txt
fastbond.txt fastbond.txt
@@ -292,6 +296,7 @@ shivan_hellkite.txt
shock.txt shock.txt
shock2.txt shock2.txt
siege_gang_commander.txt siege_gang_commander.txt
silent_arbiter.txt
slate_of_ancestry.txt slate_of_ancestry.txt
sleeper_agent.txt sleeper_agent.txt
slith_bloodletter.txt slith_bloodletter.txt
@@ -317,6 +322,7 @@ terror.txt
terror2.txt terror2.txt
threaten.txt threaten.txt
throne_of_bone.txt throne_of_bone.txt
thought_courier.txt
titanic_ultimatum.txt titanic_ultimatum.txt
torture.txt torture.txt
tranquil_domain.txt tranquil_domain.txt
@@ -0,0 +1,20 @@
#NAME: Avarice Totem
#DESC: {5}: Exchange control of Avarice Totem
#DESC: and target nonland permanent.
[INIT]
firstmain
[PLAYER1]
inplay:Avarice Totem
manapool:{5}
[PLAYER2]
inplay:Grizzly Bears
[DO]
Avarice Totem
Grizzly Bears
[ASSERT]
firstmain
[PLAYER1]
inplay:Grizzly Bears
[PLAYER2]
inplay:Avarice Totem
[END]
@@ -0,0 +1,21 @@
#NAME: Beacon of Creation
#DESC: "Put a 1/1 green Insect creature token
#DESC: onto the battlefield for each Forest
#DESC: you control. Shuffle Beacon of Creation
#DESC: into its owner's library"
[INIT]
firstmain
[PLAYER1]
inplay:1386,1387
hand:51613
manapool:{3}{G}
[PLAYER2]
[DO]
51613
[ASSERT]
firstmain
[PLAYER1]
inplay:1386,1387,-51613,-51613
library:51613
[PLAYER2]
[END]
@@ -0,0 +1,21 @@
#NAME: Beacon of Destruction
#DESC: "deals 5 damage to target creature
#DESC: or player. Shuffle Beacon of
#DESC: Destruction into its owner's library."
[INIT]
firstmain
[PLAYER1]
hand:51612
manapool:{3}{R}{R}
[PLAYER2]
inplay:Earth Elemental
[DO]
51612
Earth Elemental
[ASSERT]
firstmain
[PLAYER1]
library:51612
[PLAYER2]
graveyard:Earth Elemental
[END]
@@ -0,0 +1,24 @@
#NAME: Skull Cage 0
#DESC: "At the beginning of each opponent's upkeep,
#DESC: Skullcage deals 2 damage to that player
#DESC: unless he or she has exactly three or
#DESC: exactly four cards in hand."
#DESC: This script tests whether the player will
#DESC: correctly suffer 2 damage if he has no cards
#DESC: in hand.
#DESC: http://code.google.com/p/wagic/issues/detail?id=239
[INIT]
untap
[PLAYER1]
[PLAYER2]
inplay:Skullcage
[DO]
next
next
[ASSERT]
draw
[PLAYER1]
life:18
[PLAYER2]
inplay:Skullcage
[END]
@@ -0,0 +1,26 @@
#NAME: Skull Cage 1
#DESC: "At the beginning of each opponent's upkeep,
#DESC: Skullcage deals 2 damage to that player
#DESC: unless he or she has exactly three or
#DESC: exactly four cards in hand."
#DESC: This script tests whether the player will
#DESC: correctly suffer 2 damage if he has 1 card
#DESC: in hand.
#DESC: http://code.google.com/p/wagic/issues/detail?id=239
[INIT]
untap
[PLAYER1]
hand:Forest
[PLAYER2]
inplay:Skullcage
[DO]
next
next
[ASSERT]
draw
[PLAYER1]
hand:Forest
life:18
[PLAYER2]
inplay:Skullcage
[END]
@@ -0,0 +1,26 @@
#NAME: Skull Cage 2
#DESC: "At the beginning of each opponent's upkeep,
#DESC: Skullcage deals 2 damage to that player
#DESC: unless he or she has exactly three or
#DESC: exactly four cards in hand."
#DESC: This script tests whether the player will
#DESC: correctly suffer 2 damage if he has 2 cards
#DESC: in hand.
#DESC: http://code.google.com/p/wagic/issues/detail?id=239
[INIT]
untap
[PLAYER1]
hand:Forest,Island
[PLAYER2]
inplay:Skullcage
[DO]
next
next
[ASSERT]
draw
[PLAYER1]
hand:Forest,Island
life:18
[PLAYER2]
inplay:Skullcage
[END]
@@ -0,0 +1,25 @@
#NAME: Skull Cage 3
#DESC: "At the beginning of each opponent's upkeep,
#DESC: Skullcage deals 2 damage to that player
#DESC: unless he or she has exactly three or
#DESC: exactly four cards in hand."
#DESC: This script tests whether the player will
#DESC: correctly suffer no damage if he has 3 cards
#DESC: in hand.
#DESC: http://code.google.com/p/wagic/issues/detail?id=239
[INIT]
untap
[PLAYER1]
hand:Forest,Island,Mountain
[PLAYER2]
inplay:Skullcage
[DO]
next
next
[ASSERT]
draw
[PLAYER1]
hand:Forest,Island,Mountain
[PLAYER2]
inplay:Skullcage
[END]
@@ -0,0 +1,25 @@
#NAME: Skull Cage 4
#DESC: "At the beginning of each opponent's upkeep,
#DESC: Skullcage deals 2 damage to that player
#DESC: unless he or she has exactly three or
#DESC: exactly four cards in hand."
#DESC: This script tests whether the player will
#DESC: correctly suffer no damage if he has 4 cards
#DESC: in hand.
#DESC: http://code.google.com/p/wagic/issues/detail?id=239
[INIT]
untap
[PLAYER1]
hand:Forest,Island,Mountain,Plains
[PLAYER2]
inplay:Skullcage
[DO]
next
next
[ASSERT]
draw
[PLAYER1]
hand:Forest,Island,Mountain,Plains
[PLAYER2]
inplay:Skullcage
[END]
@@ -0,0 +1,26 @@
#NAME: Skull Cage 5
#DESC: "At the beginning of each opponent's upkeep,
#DESC: Skullcage deals 2 damage to that player
#DESC: unless he or she has exactly three or
#DESC: exactly four cards in hand."
#DESC: This script tests whether the player will
#DESC: correctly suffer 2 damage if he has 5 cards
#DESC: in hand.
#DESC: http://code.google.com/p/wagic/issues/detail?id=239
[INIT]
untap
[PLAYER1]
hand:Forest,Island,Mountain,Plains,Swamp
[PLAYER2]
inplay:Skullcage
[DO]
next
next
[ASSERT]
draw
[PLAYER1]
hand:Forest,Island,Mountain,Plains,Swamp
life:18
[PLAYER2]
inplay:Skullcage
[END]
@@ -0,0 +1,26 @@
#NAME: Skull Cage 6
#DESC: "At the beginning of each opponent's upkeep,
#DESC: Skullcage deals 2 damage to that player
#DESC: unless he or she has exactly three or
#DESC: exactly four cards in hand."
#DESC: This script tests whether the player will
#DESC: correctly suffer 2 damage if he has 6 cards
#DESC: in hand.
#DESC: http://code.google.com/p/wagic/issues/detail?id=239
[INIT]
untap
[PLAYER1]
hand:Forest,Island,Mountain,Plains,Swamp,Grizzly Bears
[PLAYER2]
inplay:Skullcage
[DO]
next
next
[ASSERT]
draw
[PLAYER1]
hand:Forest,Island,Mountain,Plains,Swamp,Grizzly Bears
life:18
[PLAYER2]
inplay:Skullcage
[END]
@@ -0,0 +1,26 @@
#NAME: Skull Cage 7
#DESC: "At the beginning of each opponent's upkeep,
#DESC: Skullcage deals 2 damage to that player
#DESC: unless he or she has exactly three or
#DESC: exactly four cards in hand."
#DESC: This script tests whether the player will
#DESC: correctly suffer 2 damage if he has 7 cards
#DESC: in hand.
#DESC: http://code.google.com/p/wagic/issues/detail?id=239
[INIT]
untap
[PLAYER1]
hand:Forest,Island,Mountain,Plains,Swamp,Grizzly Bears,Craw Wurm
[PLAYER2]
inplay:Skullcage
[DO]
next
next
[ASSERT]
draw
[PLAYER1]
hand:Forest,Island,Mountain,Plains,Swamp,Grizzly Bears,Craw Wurm
life:18
[PLAYER2]
inplay:Skullcage
[END]
@@ -0,0 +1,28 @@
#NAME: Fangren Pathcutter 1
#DESC: Verifies that Fangren Pathcutter
#DESC: gives Trample to itself and
#DESC: other attacking creatures.
[INIT]
combatattackers
[PLAYER1]
inplay:Fangren Pathcutter,Craw Wurm
[PLAYER2]
inplay:Grizzly Bears,Raging Goblin
[DO]
Fangren Pathcutter
Craw Wurm
next
Grizzly Bears
Raging Goblin
Raging Goblin
next
next
next
[ASSERT]
combatend
[PLAYER1]
inplay:Fangren Pathcutter,Craw Wurm
[PLAYER2]
graveyard:Grizzly Bears,Raging Goblin
life:13
[END]
@@ -0,0 +1,25 @@
#NAME: Silent Arbiter
#DESC: "No more than one creature can attack each combat.
#DESC: No more than one creature can block each combat."
[INIT]
combatattackers
[PLAYER1]
inplay:Silent Arbiter,Grizzly Bears
[PLAYER2]
inplay:Raging Goblin,Earth Elemental
[DO]
Grizzly Bears
Silent Arbiter
next
Raging Goblin
Earth Elemental
next
next
[ASSERT]
combatend
[PLAYER1]
inplay:Silent Arbiter,Grizzly Bears
[PLAYER2]
inplay:Earth Elemental
graveyard:Raging Goblin
[END]
@@ -0,0 +1,23 @@
#NAME: Thought Courier
#DESC: Verifies that Thought Courier
#DESC: can draw and discard a card.
#DESC: Does not check whether it can
#DESC: discard the card it just drew.
[INIT]
firstmain
[PLAYER1]
inplay:Thought Courier
hand:Island
library:Plains
[PLAYER2]
[DO]
Thought Courier
Island
[ASSERT]
firstmain
[PLAYER1]
inplay:Thought Courier
hand:Plains
graveyard:Island
[PLAYER2]
[END]