Example code:
[card]
name=Serra Avatar
auto=thisforeach(controllerlife) 1/1
autograveyard=moveTo(ownerlibrary) && shuffle
text=Serra Avatar's power and toughness are each equal to your life total. -- When Serra Avatar is put into a graveyard from anywhere, shuffle it into its owner's library.
mana={4}{W}{W}{W}
type=Creature
subtype=Avatar
power=*
toughness=*
[/card]
[card]
name=Divinity of Pride
abilities=flying,lifelink
auto=this(controllerlife > 24) 4/4
text=Flying, lifelink -- Divinity of Pride gets +4/+4 as long as you have 25 or more life.
mana={WB}{WB}{WB}{WB}{WB}
type=Creature
subtype=Spirit Avatar
power=4
toughness=4
[/card]
Example code:
[card]
name=Arc-Slogger
auto={R}{z}{z}{z}{z}{z}{z}{z}{z}{z}{z}:damage:2 target(creature,player)
text={R}, Exile the top ten cards of your library: Arc-Slogger deals 2 damage to target creature or player.
mana={3}{R}{R}
type=Creature
subtype=Beast
power=4
toughness=5
[/card]
[card]
name=Deep Spawn
abilities=trample
auto=upcost[{M}{M}] moveTo(mygraveyard)
auto={U}:shroud && tap && frozen
text=Trample -- At the beginning of your upkeep, sacrifice Deep Spawn unless you put the top two cards of your library into your graveyard. -- {U}: Deep Spawn gains shroud until end of turn and doesn't untap during your next untap step. Tap Deep Spawn. (A permanent with shroud can't be the target of spells or abilities.)
mana={5}{U}{U}{U}
type=Creature
subtype=Homarid
power=6
toughness=6
[/card]
[card]
name=Leashling
auto={q(*|myhand)}:moveTo(myhand)
text=Put a card in your hand on top of your library: Return Leashling to its owner's hand.
mana={6}
type=Artifact Creature
subtype=Hound
power=3
toughness=3
[/card]
Optimized the code for all cards with RETRACE.
Fixed issue411.
Fixed some cards.
2 example cards:
[card]
name=Decree of Justice
auto=token(Angel,Creature Angel,4/4,flying,white)*XX
autohand={2}{W}:cycling
autohand={X}{W}:name(cycle and soldier tokens) && cycling && thisforeach(X) token(Soldier,Creature Soldier,1/1,white)*X
text=Put X 4/4 white Angel creature tokens with flying onto the battlefield. -- Cycling {2}{W} ({2}{W}, Discard this card: Draw a card.) -- When you cycle Decree of Justice, you may pay {X}. If you do, put X 1/1 white Soldier creature tokens onto the battlefield.
mana={X}{X}{2}{W}{W}
type=Sorcery
[/card]
[card]
name=Stormbind
auto={2}{D}:damage:2 target(creature,player)
text={2}, Discard a card at random: Stormbind deals 2 damage to target creature or player.
mana={1}{R}{G}
type=Enchantment
[/card]
Added 2 tests for the keywords introduced in rev2272.
Corrected several card bugs.
Cards with FLASHBACK are finally 100%. Here is one example to see the changes:
OLD:
[card]
name=Lava Dart
auto=damage:1 target(creature,player)
autograveyard={S(mountain|mybattlefield)}:copy(this) && moveTo(mystack)
text=Lava Dart deals 1 damage to target creature. -- Flashback - Sacrifice a Mountain. (You may cast this card from your graveyard for its flashback cost. Then exile it.)
mana={R}
type=Instant
[/card]
NEW:
[card]
name=Lava Dart
target=creature,player
auto=damage:1
flashback={S(mountain|mybattlefield)}
text=Lava Dart deals 1 damage to target creature. -- Flashback - Sacrifice a Mountain. (You may cast this card from your graveyard for its flashback cost. Then exile it.)
mana={R}
type=Instant
[/card]
2)Added 21 successfully tested cards based on rev2262. Most of these cards have BUYBACK.
Tests for both keywords will follow in one of the next revisions.
[card]
name=Frogmite
abilities=affinityartifacts
text=Affinity for artifacts (This spell costs {1} less to cast for each artifact you control.)
mana={4}
type=Artifact Creature
subtype=Frog
power=2
toughness=2
[/card]
Added tests for that.
Have fun!
This addition includes
- cards with STORM (Dragonstorm,Tendrils of Agony,etc.) --> IT'S FINALLY THERE!
- cards which restrict the casting of spells (Arcane Laboratory,Silence)
- PLATINUM ANGEL (keyword: CANTLOSE)
Added tests for STORM;LAND:number,Sneak Attack
Removed Rhox Meditant and its tests.
- Phantom creatures (Phantom Centaur, etc.)
- Soratami
- Cards with alternative casting cost (Force of Will) including almost all cards with EVOKE.
- Creatures which let you look at target players hand.
Added tests for several card groups.
Fixed issue148. Bloodhall Ooze works now as it should.
Added 1 test for creatures with Bloodthirst.
Removed 1 test (Tolsimir Wolfblood: This was related to a Voja workaround, which does not exist anymore!).
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 ########
All these cards are creatures which have a certain effect when being cast ("played" from owners hand).
Their code profits from the fact that KICKER is not optional in Wagic: This means that whenever you are able to pay Myojin's kicker cost for example (in this case it is {0} --> rate: 100%), it will enter the battlefield with a Divinity counter on it.
- Myojin won't get the Divinity counter
----> when brought into play from the hand with cards like Elvish Piper.
----> when brought into play from any other zone.
Zethfox: "Opponenthand gui access, cards that target(*|opponenthand) can now be coded as such, target chooser will activate allowing you to click the new icon under the avatar of the opponent and open the opponents hand Gui so you may select the target card."
Cards in opponents hand are only viewable when target choosing would allow you to enter that zone! ;)
- Added the new keyword "NAME". (by Zethfox).
When used in an autoline it replaces an autoline's "ability" text with a custom ability name.
The basic phrase is: "auto=name(whatever you want) &&".
Example card:
[card]
name=Order of the Stars
abilities=defender
auto=choice name(white) && counter(0/0,1,White) all(this)
auto=choice name(blue) && counter(0/0,1,Blue) all(this)
auto=choice name(black) && counter(0/0,1,Black) all(this)
auto=choice name(red) && counter(0/0,1,Red) all(this)
auto=choice name(green) && counter(0/0,1,Green) all(this)
auto=this(counter{0/0.1.White}) protection from white
auto=this(counter{0/0.1.Blue}) protection from blue
auto=this(counter{0/0.1.Black}) protection from black
auto=this(counter{0/0.1.Red}) protection from red
auto=this(counter{0/0.1.Green}) protection from green
text=Defender (This creature can't attack.) -- As Order of the Stars enters the battlefield, choose a color. -- Order of the Stars has protection from the chosen color.
mana={W}
type=Creature
subtype=Human Cleric
power=0
toughness=1
[/card]
The popup window for this card will now contain a list with
"white,"blue","black","red" and "green"
instead of
"ability","ability","ability","ability","ability".
This will make a lot of cards much easier to handle!
- Added 42 successfully test using one (or both) new keywords.
Card list --> First comment
Note that we did not add tests for both new keywords:
It is simply not possible to write them yet! They will follow as soon as they are possible. We guarantee that everything we submitted in this revision has been tested excessively!
The engine always handled it as "REGENERATE" and thus had to be renamed. Its new name is "CANTREGEN". It has been tested excessively by me and Zethfox. Now all cards with the former "cantregenerate" work as they should.
- I also added a test for "CANTREGEN" (Incinerate).
- Added the new keyword "FOG" (by Zethfox).
This is an equivalent for "PREVENTALLCOMBATDAMAGE", which only worked for instants and sorceries. "Fog" works only for permanents and is used in combination with the newly introduced parameter "ONESHOT"!
- I also added 2 tests for "FOG" (Maze of Ith, Spore Frog).
Both additions lead to several issue fixes:
Fixed issue286.
Fixed issue328.
Fixed issue332.
Fixed issue416.
- Removed Demonic Torment, Gaseous Form, General's Kabuto, Sandskin. Those cards never worked and could even not be fixed with "FOG".
- Optimized the code of the dragon-lair land-cycle from PLS and added 2 tests for them.
- Added 8 successfully tested cards. Card list -> first comment.
Card list -> first comment
- Added tests for "lifeset" (Biorhythm,Blessed Wind)
- Removed test for Hope Charm.
- Optimized all cards with life payment as activation cost or mana cost.
- Optimized all spells with a must choice.
Zethfox found out that a single sacrifice cost as an addition to a normal manacost can be added to the manacost-line of a card!
Here is a code example from the famous card Natural Order (VIS):
[card]
name=Natural Order
auto=moveTo(myBattlefield) target(creature[green]|myLibrary)
text=As an additional cost to cast Natural Order, sacrifice a green creature. -- Search your library for a green creature card and put it onto the battlefield. Then shuffle your library.
mana={2}{G}{G}{s;notatarget(creature[green]|mybattlefield)}
type=Sorcery
[/card]
I tested this excessively and I have to say: This kind of code leads to absolute 100%ers.
- Added 2 tests for this to save it from being broken by future code changes.
- Removed the land cycle from Visions (Coral Atoll, everglades, etc.).
Card list -> first comment.
2) Fixed issue422.
3) Optimized 3 cards:
Covetous Dragon
Emperor Crocodile
Tethered Griffin
All additions and changes don't cause test suite to crash.
Will also add some tests in the next few days.
Example code:
[card]
name=Dregscape Zombie
autograveyard={B}:moveto(exile) && token(17483511) asSorcery
text=Unearth {B} ({B}: Return this card from your graveyard to the battlefield. It gains haste. Exile it at the beginning of the next end step or if it would leave the battlefield. Unearth only as a sorcery.)
mana={1}{B}
type=Creature
subtype=Zombie
power=2
toughness=1
[/card]
[card]
name=Dregscape Zombie Unearthed
type=Creature
subtype=Zombie
abilities=haste
auto=@next end:moveTo(exile)
power=2
toughness=1
mana={1}{B}
[/card]
Added a test script for this card as an example for cards with Unearth.
Card list -> First comment
More cards with Unearth will follow tomorrow.
--> http://wololo.net/forum/viewtopic.php?f=21&t=1430
!!!!Many thanks to Kaioshin!!!!
One example card code:
[card]
name=Arc Lightning
target=creature,player
auto=damage:1
auto=damage:1 target(creature,player)
auto=token(-1111112)
text=Arc Lightning deals 3 damage divided as you choose among one, two, or three target creatures and/or players.
mana={2}{R}
type=Sorcery
[/card]
[card]
name=Arc Lightning's 3rd Damage
auto=counter(0/0,1,Arc Lightning)
auto=@damaged(creature,player):thisforeach(counter{0/0.1.Arc Lightning}>0) damage:1 target(creature,player) && counter(0/0,-1,Arc Lightning) && counter(0/0,1,Bury)
auto=thisforeach(counter{0/0.1.Bury}>0) bury
type=Nothing
id=-1111112
[/card]
This new introduced use for fullcoded tokens seems more borderline than it in fact is:
- The tokens cannot be targeted or destroyed except for their own sac-effect.
- They don't cause any effects on the board to trigger.
- The interactions with their "mothercard" cannot be interrupted.
- They are invisible (this is true for most of the cards), because they exist as short as a permanent can exist, vanishing immediately after entering the board.
I couldn't believe it when I saw this way of coding the first time, but it just works wonderfully! Very few people will recognize any difference between this and the usually coded cards.
THIS ADDITION DOES NOT CAUSE TEST SUITE TO CRASH!! ;)
Card List -> First Comment
Fixed issue398.
Removed Silent Arbiter: This card does not work. Opponent can always attack or block with more then one creature although Silent Arbiter is on the battlefield. Closing issue400.
Optimized all cards with Graft.
Removed Merrow Reejerey: Permanents with two or more "may"-lines never worked because all these lines will always trigger, so you could use them all. Closing issue362.
This card cannot work for now: The engine always tries to let the "+1/+1 counter"-effect trigger first, so it tries to give a creature in a graveyard a +1/+1 counter, and this is not possible in wagic for the moment.
Closing issue306.