Card Development Questions
Post MTG Forge Related Programming Questions Here
Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins
Re: Card Development Questions
by moomarc » 14 Feb 2012, 12:47
Sloth wrote:It worked for me. Maybe you added the untapped check after the tapping?moomarc wrote:Trying to add Spirit Flare and having some issues.


-Marc
-
moomarc - Pixel Commander
- Posts: 2091
- Joined: 04 Jun 2010, 15:22
- Location: Johannesburg, South Africa
- Has thanked: 371 times
- Been thanked: 372 times
Re: Card Development Questions
by jeffwadsworth » 14 Feb 2012, 18:00
Testing Dark Supplicant. This works fine except it puts a new Dark Supplicant card onto the battlefield during resolution along with the chosen Scion of Darkness. Does anyone see the problem?
- | Open
- Name:Dark Supplicant
ManaCost:B
Types:Creature Human Cleric
Text:no text
PT:1/1
A:AB$ ChangeZone | Cost$ Sac<3/Cleric> | Origin$ Graveyard | Destination$ Battlefield | ChangeType$ Card.namedScion of Darkness | RememberChanged$ True | SubAbility$ DBCheckHand | SpellDescription$ Search your graveyard, hand, and/or library for a card named Scion of Darkness and put it onto the battlefield. If you search your library this way, shuffle it.
SVar:DBCheckHand:DB$ ChangeZone | Origin$ Hand | Destination$ Battlefield | ChangeType$ Card.namedScion of Darkness | RememberChanged$ True | ConditionDefined$ Remembered | ConditionPresent$ Card.namedScion of Darkness | ConditionCompare$ EQ0 | SubAbility$ DBCheckLibrary
SVar:DBCheckLibrary:DB$ ChangeZone | Origin$ Library | Destination$ Battlefield | ChangeType$ Card.namedScion of Darkness | RememberChanged$ True | ConditionDefined$ Remembered | ConditionPresent$ Card.namedScion of Darkness | ConditionCompare$ EQ0 | SubAbility$ DBDarkSupplicantShuffle
SVar:DBDarkSupplicantShuffle:DB$ Shuffle | Defined$ You | ConditionDefined$ Remembered | ConditionPresent$ Card.namedScion of Darkness | ConditionCompare$ GE1 | SubAbility$ DBDarkSupplicantCleanup
SVar:DBDarkSupplicantCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/dark_supplicant.jpg
End
- jeffwadsworth
- Super Tester Elite
- Posts: 1172
- Joined: 20 Oct 2010, 04:47
- Location: USA
- Has thanked: 287 times
- Been thanked: 70 times
Re: Card Development Questions
by Sloth » 14 Feb 2012, 20:10
I think it can be better scripted like Mishra, Artificer Prodigy.jeffwadsworth wrote:Testing Dark Supplicant. This works fine except it puts a new Dark Supplicant card onto the battlefield during resolution along with the chosen Scion of Darkness. Does anyone see the problem?
- | Open
- Name:Dark Supplicant
ManaCost:B
Types:Creature Human Cleric
Text:no text
PT:1/1
A:AB$ ChangeZone | Cost$ Sac<3/Cleric> | Origin$ Graveyard | Destination$ Battlefield | ChangeType$ Card.namedScion of Darkness | RememberChanged$ True | SubAbility$ DBCheckHand | SpellDescription$ Search your graveyard, hand, and/or library for a card named Scion of Darkness and put it onto the battlefield. If you search your library this way, shuffle it.
SVar:DBCheckHand:DB$ ChangeZone | Origin$ Hand | Destination$ Battlefield | ChangeType$ Card.namedScion of Darkness | RememberChanged$ True | ConditionDefined$ Remembered | ConditionPresent$ Card.namedScion of Darkness | ConditionCompare$ EQ0 | SubAbility$ DBCheckLibrary
SVar:DBCheckLibrary:DB$ ChangeZone | Origin$ Library | Destination$ Battlefield | ChangeType$ Card.namedScion of Darkness | RememberChanged$ True | ConditionDefined$ Remembered | ConditionPresent$ Card.namedScion of Darkness | ConditionCompare$ EQ0 | SubAbility$ DBDarkSupplicantShuffle
SVar:DBDarkSupplicantShuffle:DB$ Shuffle | Defined$ You | ConditionDefined$ Remembered | ConditionPresent$ Card.namedScion of Darkness | ConditionCompare$ GE1 | SubAbility$ DBDarkSupplicantCleanup
SVar:DBDarkSupplicantCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:Rarity:Uncommon
SVar:Picture:http://www.wizards.com/global/images/magic/general/dark_supplicant.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 jeffwadsworth » 14 Feb 2012, 20:28
Sol, would a "FaceUp$" parameter in ChangeZone work for Dermoplasm?
- | Open
- Name:Dermoplasm
ManaCost:2 U
Types:Creature Shapeshifter
Text:no text
PT:1/1
K:Flying
K:Morph:2 U U
T:Mode$ TurnFaceUp | ValidCard$ Card.Self | Execute$ TrigChangeZone | TriggerZones$ Battlefield | TriggerDescription$ When Dermoplasm is turned face up, you may put a creature card with morph from your hand onto the battlefield face up. If you do, return CARDNAME to its owner's hand.
SVar:TrigChangeZone:AB$ ChangeZone | Cost$ 0 | Origin$ Hand | Destination$ Battlefield | ChangeType$ Creature.withMorph | FaceUp$ True | RememberChanged$ True | SubAbility$ DBBounce
SVar:DBBounce:DB$ ChangeZone | Defined$ Self | Origin$ Battlefield | Destination$ Hand | ConditionDefined$ Remembered | ConditionPresent$ Creature.withMorph | ConditionCompare$ GE1 | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/dermoplasm.jpg
End
- jeffwadsworth
- Super Tester Elite
- Posts: 1172
- Joined: 20 Oct 2010, 04:47
- Location: USA
- Has thanked: 287 times
- Been thanked: 70 times
Re: Card Development Questions
by Sloth » 14 Feb 2012, 20:57
You don't need the FaceUp parameter Jeff, permanents always enter the battlefield face up unless stated otherwise.jeffwadsworth wrote:Sol, would a "FaceUp$" parameter in ChangeZone work for Dermoplasm?
- | Open
- Name:Dermoplasm
ManaCost:2 U
Types:Creature Shapeshifter
Text:no text
PT:1/1
K:Flying
K:Morph:2 U U
T:Mode$ TurnFaceUp | ValidCard$ Card.Self | Execute$ TrigChangeZone | TriggerZones$ Battlefield | TriggerDescription$ When Dermoplasm is turned face up, you may put a creature card with morph from your hand onto the battlefield face up. If you do, return CARDNAME to its owner's hand.
SVar:TrigChangeZone:AB$ ChangeZone | Cost$ 0 | Origin$ Hand | Destination$ Battlefield | ChangeType$ Creature.withMorph | FaceUp$ True | RememberChanged$ True | SubAbility$ DBBounce
SVar:DBBounce:DB$ ChangeZone | Defined$ Self | Origin$ Battlefield | Destination$ Hand | ConditionDefined$ Remembered | ConditionPresent$ Creature.withMorph | ConditionCompare$ GE1 | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/dermoplasm.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 friarsol » 14 Feb 2012, 20:57
I doubt FaceUp is even necessary, that rules text is there just so players are clear that even though the creature has Morph, you aren't placing it in "Morphed" mode.
Edit: Booo on Sloth for beating me to it.
Edit: Booo on Sloth for beating me to it.

- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Card Development Questions
by moomarc » 16 Feb 2012, 16:53
I have Last Chance scripted but just want to make sure that the rules guru's are happy with the implementation:
- Code: Select all
Name:Last Chance
ManaCost:R R
Types:Sorcery
Text:no text
A:SP$ AddTurn | Cost$ R R | NumTurns$ 1 | SubAbility$ BeginTurnTrig | SpellDescription$ Take an extra turn after this one. At the beginning of that turn's end step, you lose the game.
SVar:BeginTurnTrig:DB$DelayedTrigger | Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ EndTurnTrig | Static$ True
SVar:EndTurnTrig:DB$DelayedTrigger | Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | Execute$ LastChanceLose | TriggerDescription$ At the end of turn, you lose the game.
SVar:LastChanceLose:AB$LosesGame | Cost$ 0 | Defined$ You
SVar:RemAIDeck:True
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/last_chance.jpg
SetInfo:S99|Rare|http://magiccards.info/scans/en/st/110.jpg
SetInfo:POR|Rare|http://magiccards.info/scans/en/po/141.jpg
Oracle:Take an extra turn after this one. At the beginning of that turn's end step, you lose the game.
End
-Marc
-
moomarc - Pixel Commander
- Posts: 2091
- Joined: 04 Jun 2010, 15:22
- Location: Johannesburg, South Africa
- Has thanked: 371 times
- Been thanked: 372 times
Re: Card Development Questions
by friarsol » 16 Feb 2012, 17:08
I would veto this one. Aside from the multiple "You gain a turn" conundrum, there's also the inability to work with Time Vault, which Last Chance and Final Fortune player's love so much.
Here's the scenario:
FF gives you a risky turn, all or nothing. If you skip that turn to a Time Vault, the Delayed Trigger shouldn't happen, here it would.
Also, I don't know how this script interacts with Time Stop or Sundial of the Infinite. I know we don't quite have those, so I'm not putting that much weight on this portion of the interoperability, but the first two are pretty strong cases against it.
Good enough for half-implemented, not quite enough for me.
If we figure out a way to add triggers to new turns, then all of these issues go away. I know that's not trivial, but that's how I see it working properly.
Here's the scenario:
FF gives you a risky turn, all or nothing. If you skip that turn to a Time Vault, the Delayed Trigger shouldn't happen, here it would.
Also, I don't know how this script interacts with Time Stop or Sundial of the Infinite. I know we don't quite have those, so I'm not putting that much weight on this portion of the interoperability, but the first two are pretty strong cases against it.
Good enough for half-implemented, not quite enough for me.
If we figure out a way to add triggers to new turns, then all of these issues go away. I know that's not trivial, but that's how I see it working properly.
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Card Development Questions
by Sloth » 16 Feb 2012, 17:24
Check the cardfolder sol. These goodies must have sneaked past you.friarsol wrote:Also, I don't know how this script interacts with Time Stop or Sundial of the Infinite. I know we don't quite have those, so I'm not putting that much weight on this portion of the interoperability, but the first two are pretty strong cases against it.
-
Sloth - Programmer
- Posts: 3498
- Joined: 23 Jun 2009, 19:40
- Has thanked: 125 times
- Been thanked: 507 times
Re: Card Development Questions
by friarsol » 16 Feb 2012, 18:03
I know someone was talking about them, but since I'm at work, and my quick search on the WebSVN didn't pop up the Sundial, I just figured they weren't done yet.Sloth wrote:Check the cardfolder sol. These goodies must have sneaked past you.friarsol wrote:Also, I don't know how this script interacts with Time Stop or Sundial of the Infinite. I know we don't quite have those, so I'm not putting that much weight on this portion of the interoperability, but the first two are pretty strong cases against it.
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Card Development Questions
by moomarc » 16 Feb 2012, 19:17
Yip, thanks to Hellfish.friarsol wrote:I know someone was talking about them, but since I'm at work, and my quick search on the WebSVN didn't pop up the Sundial, I just figured they weren't done yet.Sloth wrote:Check the cardfolder sol. These goodies must have sneaked past you.friarsol wrote:Also, I don't know how this script interacts with Time Stop or Sundial of the Infinite. I know we don't quite have those, so I'm not putting that much weight on this portion of the interoperability, but the first two are pretty strong cases against it.

-Marc
-
moomarc - Pixel Commander
- Posts: 2091
- Joined: 04 Jun 2010, 15:22
- Location: Johannesburg, South Africa
- Has thanked: 371 times
- Been thanked: 372 times
Re: Card Development Questions
by friarsol » 16 Feb 2012, 19:21
That part I'd expect to work, the part where you end your turn before the trigger hits the stack I'd be worried about since the Delayed Trigger specifies "At the beginning of that turn's...". It really just boils down to the same circumstance happening in multiple ways, the trigger isn't attached to a specific turn. It's very similar to the Soldevi Sentry problem. Since Forge shortcuts both of these processes, there's nothing to "tie" a specific one to related triggers.moomarc wrote:Yip, thanks to Hellfish.I did in fact test the script with the Sundial, but only as far as using it to end the turn while the lose game trigger was on the stack. But thanks for the feedback. I'll post to half-implemented cards for now.
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Card Development Questions
by jeffwadsworth » 17 Feb 2012, 17:40
Testing the 3rd ability of Sisters of Stone Death. Now, the only way I am able to get this operational was to use targeting, which I believe is not correct. Sol, is there a way to do this correctly with your AB ChangeZone?
I will handle the clearing of the Remembered cards later if this works out.
- | Open
- Name:Sisters of Stone Death
ManaCost:4 B B G G
Types:Legendary Creature Gorgon
Text:no text
PT:7/5
A:AB$ MustBlock | Cost$ G | ValidTgts$ Creature | TgtPrompt$ Select target creature | SpellDescription$ Target creature blocks CARDNAME this turn if able.
A:AB$ ChangeZone | Cost$ B G | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.blockingSource,Creature.blockedBySource | TgtPrompt$ Select target creature blocking Sisters of Stone Death | RememberTargets$ True | SpellDescription$ Exile target creature blocking or blocked by CARDNAME.
A:AB$ ChangeZone | Cost$ 2 B | Origin$ Exile | Destination$ Battlefield | ValidTgts$ Creature.IsRemembered | GainControl$ True | SpellDescription$ Put a creature card exiled with CARDNAME onto the battlefield under your control.
SVar:RemAIDeck:True
SVar:RemRandomDeck:True
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/sisters_of_stone_death.jpg
End
I will handle the clearing of the Remembered cards later if this works out.
- jeffwadsworth
- Super Tester Elite
- Posts: 1172
- Joined: 20 Oct 2010, 04:47
- Location: USA
- Has thanked: 287 times
- Been thanked: 70 times
Re: Card Development Questions
by friarsol » 17 Feb 2012, 17:45
Did you try it with Hidden$ True already?
AB$ChangeZone | ChangeType$ Creature.IsRemembered | Origin$ Exile | Destination$ Battlefield | Hidden$ True | GainControl$ True
AB$ChangeZone | ChangeType$ Creature.IsRemembered | Origin$ Exile | Destination$ Battlefield | Hidden$ True | GainControl$ True
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Card Development Questions
by jeffwadsworth » 17 Feb 2012, 19:01
That works. I thought that Exile was a known zone.friarsol wrote:Did you try it with Hidden$ True already?
AB$ChangeZone | ChangeType$ Creature.IsRemembered | Origin$ Exile | Destination$ Battlefield | Hidden$ True | GainControl$ True
Last edited by jeffwadsworth on 17 Feb 2012, 19:45, edited 1 time in total.
- jeffwadsworth
- Super Tester Elite
- Posts: 1172
- Joined: 20 Oct 2010, 04:47
- Location: USA
- Has thanked: 287 times
- Been thanked: 70 times
Who is online
Users browsing this forum: No registered users and 22 guests