It is currently 23 May 2025, 22:04
   
Text Size

Card Development Questions

Post MTG Forge Related Programming Questions Here

Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins

Re: Card Development Questions

Postby moomarc » 14 Feb 2012, 12:47

Sloth wrote:
moomarc wrote:Trying to add Spirit Flare and having some issues.
It worked for me. Maybe you added the untapped check after the tapping?
#-o Yip, I was a brainiac and put it after the tapping. :lol:
-Marc
User avatar
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

Postby 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

Postby Sloth » 14 Feb 2012, 20:10

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
I think it can be better scripted like Mishra, Artificer Prodigy.
User avatar
Sloth
Programmer
 
Posts: 3498
Joined: 23 Jun 2009, 19:40
Has thanked: 125 times
Been thanked: 507 times

Re: Card Development Questions

Postby 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

Postby Sloth » 14 Feb 2012, 20:57

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
You don't need the FaceUp parameter Jeff, permanents always enter the battlefield face up unless stated otherwise.
User avatar
Sloth
Programmer
 
Posts: 3498
Joined: 23 Jun 2009, 19:40
Has thanked: 125 times
Been thanked: 507 times

Re: Card Development Questions

Postby 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. :D
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Card Development Questions

Postby 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
The only thing I can think of offhand is when another card gives you an extra turn after this has been played but before that turn starts, you lose at the end of that turn instead of the turn after that. Its definitely a corner case, but is it enough to not post the script? It works as expected otherwise.
-Marc
User avatar
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

Postby 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.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Card Development Questions

Postby Sloth » 16 Feb 2012, 17:24

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.
Check the cardfolder sol. These goodies must have sneaked past you.
User avatar
Sloth
Programmer
 
Posts: 3498
Joined: 23 Jun 2009, 19:40
Has thanked: 125 times
Been thanked: 507 times

Re: Card Development Questions

Postby friarsol » 16 Feb 2012, 18:03

Sloth wrote:
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.
Check the cardfolder sol. These goodies must have sneaked past you.
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.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Card Development Questions

Postby moomarc » 16 Feb 2012, 19:17

friarsol wrote:
Sloth wrote:
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.
Check the cardfolder sol. These goodies must have sneaked past you.
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.
Yip, thanks to Hellfish. =D> 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.
-Marc
User avatar
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

Postby friarsol » 16 Feb 2012, 19:21

moomarc wrote:Yip, thanks to Hellfish. =D> 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.
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.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Card Development Questions

Postby 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?

| 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

Postby 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
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Card Development Questions

Postby jeffwadsworth » 17 Feb 2012, 19:01

friarsol wrote:Did you try it with Hidden$ True already?

AB$ChangeZone | ChangeType$ Creature.IsRemembered | Origin$ Exile | Destination$ Battlefield | Hidden$ True | GainControl$ True
That works. I thought that Exile was a known zone.
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

PreviousNext

Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 22 guests


Who is online

In total there are 22 users online :: 0 registered, 0 hidden and 22 guests (based on users active over the past 10 minutes)
Most users ever online was 4143 on 23 Jan 2024, 08:21

Users browsing this forum: No registered users and 22 guests

Login Form