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.