Card Development Questions
Post MTG Forge Related Programming Questions Here
Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins
Re: Card Development Questions
by slapshot5 » 11 Apr 2011, 21:01
- slapshot5
- Programmer
- Posts: 1391
- Joined: 03 Jan 2010, 17:47
- Location: Mac OS X
- Has thanked: 25 times
- Been thanked: 68 times
Re: Card Development Questions
by Jaedayr » 22 Apr 2011, 18:40
Wormfang Drake, as coded below appears to work. But I am not sure of the Champion mechanism and hope someone with more knowledge than me can say if it works properly.
Here is an example: I have a creature in play and cast the drake. The creature in play is exiled and the drake is active. Then I cast a second drake, exiling the first drake. When the first drake is exiled, the original creature comes back into play. Is that the way it should work?
Here is an example: I have a creature in play and cast the drake. The creature in play is exiled and the drake is active. Then I cast a second drake, exiling the first drake. When the first drake is exiled, the original creature comes back into play. Is that the way it should work?
- Code: Select all
Name:Wormfang Drake
ManaCost:2 U
Types:Creature Nightmare Drake
Text:no text
PT:3/4
K:Flying
K:Champion:Creature
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/wormfang_drake.jpg
SetInfo:JUD|Common|http://magiccards.info/scans/en/ju/57.jpg
End
Re: Card Development Questions
by Jaedayr » 22 Apr 2011, 20:01
Trying another card and have a couple questions.
If I have exactly six cards in my graveyard when the werewolf gets killed, it triggers the threshold condition as it leaves the battlefield. Is this correct or should threshold be true before it starts to leave?
How should the descriptions be handled to make the most sense without duplication? Should the two actions (pump and lose life) be separate and each have Threshold? If I leave off the triggerdescription then the message on the stack is blank but the card description on the playing field is not duplicated.
If I have exactly six cards in my graveyard when the werewolf gets killed, it triggers the threshold condition as it leaves the battlefield. Is this correct or should threshold be true before it starts to leave?
How should the descriptions be handled to make the most sense without duplication? Should the two actions (pump and lose life) be separate and each have Threshold? If I leave off the triggerdescription then the message on the stack is blank but the card description on the playing field is not duplicated.
- Code: Select all
Name:Treacherous Werewolf
ManaCost:2 B
Types:Creature Human Wolf Minion
Text:no text
PT:2/2
K:stPumpSelf:Creature:2/2:Threshold:Threshold - As long as seven or more cards are in your graveyard, CARDNAME gets +2/+2 and has "When CARDNAME is put into a graveyard from the battlefield, you lose 4 life."
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Threshold$ True | Execute$ YouLoseLife | TriggerDescription$ When CARDNAME is put into a graveyard from the battlefield, you lose 4 life.
SVar:YouLoseLife:DB$LoseLife | Defined$ You | LifeAmount$ 4
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/treacherous_werewolf.jpg
SetInfo:JUD|Common|http://magiccards.info/scans/en/ju/76.jpg
End
Re: Card Development Questions
by eidolon » 23 Apr 2011, 19:16
It is always a good idea to check a site like http://magiccards.info/ for the rulings first.
Treacherous Werewolf:
"The Threshold ability can't count this card (soon to be in the graveyard) when checking for Threshold."
So you should not lose any life when the card dies with 6 other cards in your graveyard.
Yes, that is what the card is supposed to do.Here is an example: I have a creature in play and cast the drake. The creature in play is exiled and the drake is active. Then I cast a second drake, exiling the first drake. When the first drake is exiled, the original creature comes back into play. Is that the way it should work?
Treacherous Werewolf:
"The Threshold ability can't count this card (soon to be in the graveyard) when checking for Threshold."
So you should not lose any life when the card dies with 6 other cards in your graveyard.
- eidolon
- Posts: 56
- Joined: 15 Sep 2009, 22:12
- Location: Bavaria, Germany
- Has thanked: 0 time
- Been thanked: 0 time
Re: Card Development Questions
by Jaedayr » 24 Apr 2011, 02:08
Thank you for the info, I guess we need to add this to the "to-do" list since it does not work like that currently. I will hold off on committing this for now.eidolon wrote:Treacherous Werewolf:
"The Threshold ability can't count this card (soon to be in the graveyard) when checking for Threshold."
So you should not lose any life when the card dies with 6 other cards in your graveyard.
Re: Card Development Questions
by eidolon » 25 Apr 2011, 14:40
I wanted to add Blood Tribute, but apparently, the values for X get recalculated for the SubAbilities. Does anybody have an idea how this can be fixed?
- Code: Select all
Name:Blood Tribute
ManaCost:4 B B
Types:Sorcery
Text:no text
A:SP$ LoseLife | Cost$ 4 B B | ValidTgts$ Opponent | TgtPrompt$ Select target Opponent | LifeAmount$ X | SpellDescription$ Target opponent loses half his or her life, rounded up. If CARDNAME was kicked, you gain life equal to the life lost this way.
A:SP$ LoseLife | Cost$ 4 B B | ValidTgts$ Opponent | TgtPrompt$ Select target Opponent | LifeAmount$ X | SubAbility$ SVar=DBGainLife | SpellDescription$ Kicker Tap an untapped Vampire you control. (You may tap a Vampire you control in addition to any other costs as you cast this spell.)
SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ X
SVar:X:Count$OppLifeTotal/HalfUp
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/blood_tribute.jpg
SetInfo:ZEN|Rare|http://magiccards.info/scans/en/zen/81.jpg
End
- eidolon
- Posts: 56
- Joined: 15 Sep 2009, 22:12
- Location: Bavaria, Germany
- Has thanked: 0 time
- Been thanked: 0 time
Re: Card Development Questions
by SoulStorm » 12 May 2011, 12:29
:Mephidross Vampire
My attempt to add this card was going well until the very end when I realized that the Defined$ doesn't yet support the option I need which I believe would be "Source" derived from the ValidSource$. I'm just using Defined$ Self as a placeholder, I know that's not right. Is there another way to implement this card I may be missing?
My attempt to add this card was going well until the very end when I realized that the Defined$ doesn't yet support the option I need which I believe would be "Source" derived from the ValidSource$. I'm just using Defined$ Self as a placeholder, I know that's not right. Is there another way to implement this card I may be missing?
- Code: Select all
Name:Mephidross Vampire
ManaCost:4 B B
Types:Creature Vampire
Text:no text
PT:3/4
K:stPumpAll:Creature.YouCtrl:0/0/Types=Vampire:No Condition:Each creature you control is a Vampire in addition to its other types and has "Whenever this creature deals damage to a creature, put a +1/+1 counter on this creature."
T:Mode$ DamageDone | ValidSource$ Creature.YouCtrl | ValidTarget$ Creature | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Each creature you control is a Vampire in addition to its other types and has "Whenever this creature deals damage to a creature, put a +1/+1 counter on this creature."
SVar:TrigPutCounter:AB$PutCounter | Cost$ 0 | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1
SVar:PlayMain1:TRUE
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/mephidross_vampire.jpg
End
Re: Card Development Questions
by Sloth » 12 May 2011, 12:35
I think "TriggeredSource" should do the trick.SoulStorm wrote::Mephidross Vampire
My attempt to add this card was going well until the very end when I realized that the Defined$ doesn't yet support the option I need which I believe would be "Source" derived from the ValidSource$. I'm just using Defined$ Self as a placeholder, I know that's not right. Is there another way to implement this card I may be missing?
- Code: Select all
Name:Mephidross Vampire
ManaCost:4 B B
Types:Creature Vampire
Text:no text
PT:3/4
K:stPumpAll:Creature.YouCtrl:0/0/Types=Vampire:No Condition:Each creature you control is a Vampire in addition to its other types and has "Whenever this creature deals damage to a creature, put a +1/+1 counter on this creature."
T:Mode$ DamageDone | ValidSource$ Creature.YouCtrl | ValidTarget$ Creature | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Each creature you control is a Vampire in addition to its other types and has "Whenever this creature deals damage to a creature, put a +1/+1 counter on this creature."
SVar:TrigPutCounter:AB$PutCounter | Cost$ 0 | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1
SVar:PlayMain1:TRUE
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/mephidross_vampire.jpg
End
-
Sloth - Programmer
- Posts: 3498
- Joined: 23 Jun 2009, 19:40
- Has thanked: 125 times
- Been thanked: 507 times
Re: Card Development Questions
by SoulStorm » 12 May 2011, 13:04
Awesome, thanks Sloth! I looked in the Wiki, but I didn't see it there. I either wasn't looking in the right place, or it hasn't been listed yet.
Re: Card Development Questions
by Hellfish » 12 May 2011, 19:03
The Triggered-variables are listed under the trigger they are associated with, on the triggers-page. 

So now you're
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
-
Hellfish - Programmer
- Posts: 1297
- Joined: 07 Jun 2009, 10:41
- Location: South of the Pumphouse
- Has thanked: 110 times
- Been thanked: 169 times
Re: Card Development Questions
by Jaedayr » 12 May 2011, 19:36
Is there a way to make this work easily? It is currently possible to cast it without sacrificing the forest. Can AB$Sacrifice be given two targets and force one of them to be chosen?
- Code: Select all
Name:Rogue Elephant
ManaCost:G
Types:Creature Elephant
Text:no text
PT:3/3
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSac | TriggerDescription$ When CARDNAME enters the battlefield, sacrifice it unless you sacrifice a Forest.
SVar:TrigSac:AB$Sacrifice | Cost$ 0 | Defined$ You | SacValid$ Land.Forest
SVar:RemAIDeck:True
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/rogue_elephant.jpg
SetInfo:WTH|Common|http://magiccards.info/scans/en/wl/81.jpg
End
Re: Card Development Questions
by Sloth » 12 May 2011, 19:45
Unfortunately this is not possible at the moment. Having unless costs is on our list of things to add.Jaedayr wrote:Is there a way to make this work easily? It is currently possible to cast it without sacrificing the forest. Can AB$Sacrifice be given two targets and force one of them to be chosen?
- Code: Select all
Name:Rogue Elephant
ManaCost:G
Types:Creature Elephant
Text:no text
PT:3/3
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSac | TriggerDescription$ When CARDNAME enters the battlefield, sacrifice it unless you sacrifice a Forest.
SVar:TrigSac:AB$Sacrifice | Cost$ 0 | Defined$ You | SacValid$ Land.Forest
SVar:RemAIDeck:True
SVar:Rarity:Common
SVar:Picture:http://www.wizards.com/global/images/magic/general/rogue_elephant.jpg
SetInfo:WTH|Common|http://magiccards.info/scans/en/wl/81.jpg
End
-
Sloth - Programmer
- Posts: 3498
- Joined: 23 Jun 2009, 19:40
- Has thanked: 125 times
- Been thanked: 507 times
Re: Card Development Questions
by SoulStorm » 14 May 2011, 09:58
: Protean Hulk
Is there a way to code this card correctly? Seems you would need code to allow one to choose cards until one has chosen cards with a total cmcLE6. You could probably expand ChangeNum$ to accept cmcLEx (cmcLE6 in this case of this card) which would allow one to choose cards until one reached a total cmcLEx.
Is there a way to code this card correctly? Seems you would need code to allow one to choose cards until one has chosen cards with a total cmcLE6. You could probably expand ChangeNum$ to accept cmcLEx (cmcLE6 in this case of this card) which would allow one to choose cards until one reached a total cmcLEx.
- Code: Select all
Name:Protean Hulk
ManaCost:5 G G
Types:Creature Beast
Text:no text
PT:6/6
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME is put into a graveyard from the battlefield, search you libray for any number of creature cards with total converted mana cost 6 or less and put them onto the battlefield. Then shuffle your library.
SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Battlefield | ChangeType$ Creature.cmcLE6 | ChangeNum$ 1
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/protean_hulk.jpg
End
Re: Card Development Questions
by slapshot5 » 14 May 2011, 13:50
Have a look at Nissa Revane and see if that helps. Not sure if that will work with cmcLE6?SoulStorm wrote:: Protean Hulk
Is there a way to code this card correctly? Seems you would need code to allow one to choose cards until one has chosen cards with a total cmcLE6. You could probably expand ChangeNum$ to accept cmcLEx (cmcLE6 in this case of this card) which would allow one to choose cards until one reached a total cmcLEx.
- Code: Select all
Name:Protean Hulk
ManaCost:5 G G
Types:Creature Beast
Text:no text
PT:6/6
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME is put into a graveyard from the battlefield, search you libray for any number of creature cards with total converted mana cost 6 or less and put them onto the battlefield. Then shuffle your library.
SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Battlefield | ChangeType$ Creature.cmcLE6 | ChangeNum$ 1
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/protean_hulk.jpg
End
- slapshot5
- Programmer
- Posts: 1391
- Joined: 03 Jan 2010, 17:47
- Location: Mac OS X
- Has thanked: 25 times
- Been thanked: 68 times
Re: Card Development Questions
by SoulStorm » 14 May 2011, 20:48
Based upon your suggestion Slapshot, I tried the following code, but now no cards can be put into play. Other suggestions, or do you believe the infrastructure necessary isn't in place yet?
- Code: Select all
Name:Protean Hulk
ManaCost:5 G G
Types:Creature Beast
Text:no text
PT:6/6
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME is put into a graveyard from the battlefield, search you libray for any number of creature cards with total converted mana cost 6 or less and put them onto the battlefield. Then shuffle your library.
SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Battlefield | ChangeType$ Creature.cmcLE6 | ChangeNum$ XFetch
SVar:XFetch:Count$cmcLE6
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/protean_hulk.jpg
End
Who is online
Users browsing this forum: No registered users and 10 guests