Szei wrote:I was wondering how easy it would be to implement a feature that allows the mod.txt file to include starting cards for players. What I mean is the ability to set players with certain cards on the field or in hand at the beginning of the game as in test mode. This feature would most certainly be useful for mods and based on the present test mode capabilities, it seems as though this feature wouldn't be too much of a stretch to add?
I think that is already somehow possible although I never tested it.
something like:
- Code: Select all
[INIT]
mode=mtg
[PLAYERS]
life:20
hand:Forest,Plains,Mountain
auto=shuffle
auto=@each my draw:draw:1
would have both players start with a Forest, a Plains and a Mountain in their hand. However I'm not entirely sure of the impact this would have on the deck construction.
Other solutions can be considered depending on what exactly you want to achieve.
This new system of rules was created mostly after I read about your project to create a mod, and as I said, I am willing to help as much as I can here
1. No deckout lose condition.
2. Basic restrictions on card play* <-- For example, "can't play certain card if another card of the same name is in play", "can't play certain card if no ____ cards in play", "can't play certain card if 2 of that card is already in play", etc. The most important card restriction for the mods I've been thinking about is the first example I gave.
*These restrictions might already be possible with Wagic in its current form, but I'm not sure. I'm guessing there might be some way to have a card check if a type of card is on the field as it comes into play and if not, the card can be triggered to sacrifice itself. Is this possible?
1) I can probably add the first one somehow (it is not already implemented but the test suite does it so it's just a matter of generalizing the functionality)
2) You can code cards that somehow simulate this behavior (As long as I am in play, if such card is on the stack, then move it back to the player's hand <-- never tested that actually), but it probably won't be satisfying for your needs:
text=as long as Szei is in play, you can't cast elf spells
name=Szei
auto=@movedTo(elf|myStack):moveTo(myHand) all(elf|myStack)That's a bit weird (it doesn't prevent you from casting the spell, but it returns the card to your hand as soon as it goes to the stack) AND I'm not sure it would work (it is possible that the spell manages to resolve anyways because of a bug... which might be solved by adding
&& fizzle all(elf|myStack)) but other workarounds can be imagined...
It's not necessary to code that in all cards either, it can be a general rule in mtg.txt:
auto=aslongas(goblin) @movedTo(elf|myStack):moveTo(myHand) all(elf|myStack) >2<-- as long as more than 2 goblins are in play, elf spells can't be cast
Again, I have tried none of those and it could be that they don't work because of some bugs/limitations in the parser...