- matched card names of flip cards and split cards in _cards.dat and mtg:todo.dat
- removed the now superfluous todo.dat files, the file mtg_todo.dat replaces these.
Also re-enabled the cards which had their names changed to make them work. (Example: the card code for "Vorosh, the Hunter" only works if thecomma is removed from the card's name.) These cards are a maintenance hazard since they a) require changes to _cards.dat if their names are corrected later, b) disrupt translation, and c) cause problems for external tools like MTG Studio which have the correct names in their database. However, only a few cards are affected by this, and I didn't want to remove them because Dr. Solomat has invested quite some effort top make them work. I added comments to these cards in mtg.txt as well as in the respective _cards.dat files to reduce the risk of further maintenance problems for these cards. In any case changing a card's name to make it work should be considered as a makeshift solution at best, please try to prevent it when possible.
After weeks of hard work, I can proudly present you this huge package of cards, based only on already existing card code elements.
Some examples and important notes:
- Cards that get buried if you don't fulfill a condition
1. when they enter the battlefield (Hidden Horror[WEL]; Mercenary Knight, Thundering Wurm [both POR])
2. during your upkeep (Endless Wurm[USG]).
- Cards that allow to draw a card, then discard a card when entering the battlefield or damaging an opponent (Owl Familiar[POR], Looter il-Kor[TSP]).
IMPORTANT NOTE: Those cards work only correctly because the draw effect resolves before the discard effect.
Instants and Sorceries with such effects or permanents that have an activation cost for drawing, then discarding a card won't work because the two effects don't trigger in the correct order.
- Land cycle from Visions and Planeshift (both very puzzling, but working perfectly!)
I also updated World enchantments (tested & working, see rules for them in Gatherer!)
Several card fixes.
If you have any questions, post them! ;)
- fix for issue 301 (creatures go to graveyard)
- This adds an important change to "movedTo", which now accepts a "full" target description in both "from" and "movedTo". The point is that a card does not move to "creature|graveyard" from "battlefield" but moves from "creature|battlefield" to "graveyard".
- IMPORTANT: Legendary is not an ability anymore, creating cards with super types should be much more natural. You can now say "type=Snow Land", and stuff like that. No backward compatibility!!!
Crosswinds (USG) - wrong manacost, also copy/pasted to the wrong position in the file
Akroma's Blessing (ONS) - cycling was in an auto= rule instead of an autohand= rule
Riptide Crab (INV) - was missing vigilance
Thanks to Raphael_Carlo for the bug reports
Limitations:
- Operators for "greater than", "less than", "unequal" have not been implemented, but if a card actually needs them, you can use a preceding minus sign to negate a comparison. Example: -power=3 means "power not equal to 3", -toughness<=3 means "toughness>3".
- You can't use spaces when specifying such restrictions. Write "power<=3" instead of "power <= 3"
- You now need to use a space before the "<" and ">" commands that count the matches for lord(), foreach(), all() and aslongas(). So far we always did use spaces in front of them without actually needing to, now we need to.
- manacost restrictions don't take "X" costs into account. Example: Mistmeadow Skulkin (FUT) has protection from manacost>=3. Blaze has a converted manacost of 1, but when you cast it with an X of 2, then it actually has a converted manacost of 3 while on the stack, and Mistmeadow Skulkin would be protected from it, but currently it isn't.
Please review the code, I'll add a few remarks/questions of my own.
EXAMPLE: The older code of Death Pulse was:
autohand={1}{B}{B}:cycling && may -1/-1 target(creature)
I tested this ingame and the following happened:
1. I pay the cycling cost.
2. The engine gives me the option to target a creature.
3. I choose a creature.
4. The cycling effect resolves: Death Pulse goes to the graveyard and I draw a card, but the targeted creature does not get the p/t malus.
This is seems to be because the cycling effect is coded as option ("may") and the cycle process (dicard this:Draw:1) is coded as a "must".
I found a new, successfully tested way to code such cards by giving them 2 autohand-lines instead of only one:
The first one is without optional effect and the second one is with optional effect.
Ingame, if you cycle Death Pulse f.e., a window will appear to choose between those two auto-lines. WORKS GREAT AND DOES NOT BREAK THE CARD!! :)
- fix issue 168 (kudzu)
- Fix issue 162 (copy VS shroud). This fix introduces a new keyword: NotATarget() instead of Target(). (Which was the best way for me to keep some kind of backward compatibility/ not alter the code too much / fix the bug)
- Adding cycling. Check Akroma's vengeance in ONS for an example. Note that this uses autohand instead of auto, this is important! You can also use autograveyard.
- All "auto" activated abilities should work with autohand, so this is not only for cycling, but could be used for other abilities as well. For example autohand={3}:cycling can also be written autohand={3}{S}:Draw:1
DIS additions:cards with Hellbent and some cards with @damaged. Note that "opponent" is not a valid target and "player|opponentinplay" will not work. So for some addition we assume that the creature will never deal damage to its owner (e.g trygon in DIS). Hellbent works fine in the situation described.