It is currently 20 May 2025, 22:59
   
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 Marek14 » 05 Aug 2013, 14:05

Is Miracle and Madness implemented correctly, ruleswise? Currently, with Miracle I draw the card, then ability appears on stack and asks me if I want to cast the spell. Correctly, it should start with replacement effect that allows me to reveal the card or keep it hidden, and only if I choose to reveal it there should be a trigger.
Marek14
Tester
 
Posts: 2771
Joined: 07 Jun 2008, 07:54
Has thanked: 0 time
Been thanked: 302 times

Re: Card Development Questions

Postby friarsol » 05 Aug 2013, 14:09

Marek14 wrote:Is Miracle and Madness implemented correctly, ruleswise? Currently, with Miracle I draw the card, then ability appears on stack and asks me if I want to cast the spell. Correctly, it should start with replacement effect that allows me to reveal the card or keep it hidden, and only if I choose to reveal it there should be a trigger.
I'm pretty sure Madness is not 100% correct, and since Miracle was based on that it probably isn't 100% correct either.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Card Development Questions

Postby swordshine » 06 Aug 2013, 13:22

Some cards with hidden keyword "At the beginning of the end step, sacrifice CARDNAME." should be a delayed trigger, e.g. Sneak Attack. The EOT trigger could be stifled and the creature could be kept in play.
swordshine
 
Posts: 682
Joined: 11 Jul 2010, 02:37
Has thanked: 116 times
Been thanked: 87 times

Re: Card Development Questions

Postby Sloth » 06 Aug 2013, 14:11

swordshine wrote:Some cards with hidden keyword "At the beginning of the end step, sacrifice CARDNAME." should be a delayed trigger, e.g. Sneak Attack. The EOT trigger could be stifled and the creature could be kept in play.
What's the problem? "At the beginning of the end step, sacrifice CARDNAME." triggers should all be stifleable (just like delayed triggers).
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 swordshine » 07 Aug 2013, 00:43

Sloth wrote:What's the problem? "At the beginning of the end step, sacrifice CARDNAME." triggers should all be stifleable (just like delayed triggers).
The trigger cannot be targeted by Stifle in r22819. If I made the ability setTrigger(true), I stifled it and it would trigger again at the beginning of the next EOT. It should only trigger once.
swordshine
 
Posts: 682
Joined: 11 Jul 2010, 02:37
Has thanked: 116 times
Been thanked: 87 times

Re: Card Development Questions

Postby swordshine » 07 Aug 2013, 15:24

I found this one in our scripted cards:
Sunglasses of Urza | Open
Code: Select all
Name:Sunglasses of Urza
ManaCost:3
Types:Artifact
Text:You may spend white mana as though it were red mana.
A:AB$ Mana | Cost$ W | Produced$ R | SpellDescription$ Add R to your mana pool.
SVar:RemRandomDeck:True
SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/sunglasses_of_urza.jpg
Oracle:You may spend white mana as though it were red mana.
It's totally incorrect. Shall we remove it?
And this one:
Oubliette | Open
Code: Select all
Name:Oubliette
ManaCost:1 B B
Types:Enchantment
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile target creature and all Auras attached to it. Note the number and kind of counters that were on that creature.
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigReturn | TriggerController$ TriggeredCardController | TriggerDescription$ When CARDNAME leaves the battlefield, return the exiled card to the battlefield under its owner's control tapped with the noted number and kind of counters on it. If you do, return the exiled Aura cards to the battlefield under their owner's control attached to that permanent.
SVar:TrigExile:DB$ChangeZone | Cost$ 0 | TargetMin$ 1 | ValidTgts$ Creature | TgtPrompt$ Select target creature | RememberTargets$ True | ForgetOtherTargets$ True | Origin$ Battlefield | Destination$ Exile
SVar:TrigReturn:DB$ChangeZone | Cost$ 0 | Defined$ Remembered | Origin$ Exile | Destination$ Battlefield
SVar:RemAIDeck:True
SVar:RemRandomDeck:True
SVar:Picture:http://resources.wizards.com/magic/cards/med/en-us/card159135.jpg
Oracle:When Oubliette enters the battlefield, exile target creature and all Auras attached to it. Note the number and kind of counters that were on that creature.\nWhen Oubliette leaves the battlefield, return the exiled card to the battlefield under its owner's control tapped with the noted number and kind of counters on it. If you do, return the exiled Aura cards to the battlefield under their owner's control attached to that permanent.
Last edited by swordshine on 07 Aug 2013, 15:27, edited 1 time in total.
swordshine
 
Posts: 682
Joined: 11 Jul 2010, 02:37
Has thanked: 116 times
Been thanked: 87 times

Re: Card Development Questions

Postby Sloth » 07 Aug 2013, 15:26

swordshine wrote:I found this one in our scripted cards:
Sunglasses of Urza | Open
Code: Select all
Name:Sunglasses of Urza
ManaCost:3
Types:Artifact
Text:You may spend white mana as though it were red mana.
A:AB$ Mana | Cost$ W | Produced$ R | SpellDescription$ Add R to your mana pool.
SVar:RemRandomDeck:True
SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/sunglasses_of_urza.jpg
Oracle:You may spend white mana as though it were red mana.
It's totally incorrect. Shall we remove it?
Removing a card is generally a bad idea, because the card could be in decks, limited pools or quest collections of users already.
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 drdev » 07 Aug 2013, 16:39

Sloth wrote:
swordshine wrote:I found this one in our scripted cards:
Sunglasses of Urza | Open
Code: Select all
Name:Sunglasses of Urza
ManaCost:3
Types:Artifact
Text:You may spend white mana as though it were red mana.
A:AB$ Mana | Cost$ W | Produced$ R | SpellDescription$ Add R to your mana pool.
SVar:RemRandomDeck:True
SVar:RemAIDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/sunglasses_of_urza.jpg
Oracle:You may spend white mana as though it were red mana.
It's totally incorrect. Shall we remove it?
Removing a card is generally a bad idea, because the card could be in decks, limited pools or quest collections of users already.
Shouldn't we just update the card to fix what's wrong with it? Or am I misunderstanding something?
drdev
Programmer
 
Posts: 1958
Joined: 27 Jul 2013, 02:07
Has thanked: 189 times
Been thanked: 565 times

Re: Card Development Questions

Postby friarsol » 07 Aug 2013, 16:51

drdev wrote:Shouldn't we just update the card to fix what's wrong with it? Or am I misunderstanding something?
Sounds like someone just volunteered to add a feature we don't have yet :D

We don't have a way to spend one mana as a different type of mana yet, that's why cards like Celestial Dawn are not yet implemented. There's nothing that can be done to the script to "fix" anything. Sunglasses of Urza doesn't have the same ability that Agent of Stromgald does, it's not a mana ability on it's own, even though it's roughly equivilant to one.

Before we had standards on committing cards, things like this would happen occassionally, due to Forge's roots. We haven't added cards like this in several years, but there are still a few around that aren't quite right.

Edit: I've added these two cards in Italics to the remaining card spreadsheet
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Card Development Questions

Postby drdev » 07 Aug 2013, 17:02

I don't know about doing it myself, as I primarily want to focus on UI development and wasn't planning to do any card programming. I just was confused why removing it was suggested. Now I understand.

Maybe when I finish some of the UI projects I currently have planned I could circle back to this if nobody works on it before then. But, then, I'll probably never "finish" all the UI stuff I want to work on, so it's probably better that somebody else take it on. :)
drdev
Programmer
 
Posts: 1958
Joined: 27 Jul 2013, 02:07
Has thanked: 189 times
Been thanked: 565 times

Re: Card Development Questions

Postby friarsol » 07 Aug 2013, 17:06

drdev wrote:Maybe when I finish some of the UI projects I currently have planned I could circle back to this if nobody works on it before then. But, then, I'll probably never "finish" all the UI stuff I want to work on, so it's probably better that somebody else take it on. :)
Oh I was mostly just kidding. I think most of us would rather see people want to do UI work, we've been handling the Remaining Cards at a good pace, and an extra hand learning to do that wouldn't be as significant as one or two people wanting to spruce up some of the UI bits that haven't been appropriately cared for.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Card Development Questions

Postby drdev » 07 Aug 2013, 17:32

In that case I'm more than happy to do almost exclusively UI development.
drdev
Programmer
 
Posts: 1958
Joined: 27 Jul 2013, 02:07
Has thanked: 189 times
Been thanked: 565 times

Re: Card Development Questions

Postby swordshine » 08 Aug 2013, 00:15

friarsol wrote:Edit: I've added these two cards in Italics to the remaining card spreadsheet
We should also add Ruhan of the Fomori to the remaining card spreadsheet.
swordshine
 
Posts: 682
Joined: 11 Jul 2010, 02:37
Has thanked: 116 times
Been thanked: 87 times

Re: Card Development Questions

Postby moomarc » 08 Aug 2013, 08:43

Excuse the ignorance, but why do we expressly NOT remember lki for tokens changing zones? I'm trying to script Grand Ossuary, but TriggeredCard$CardPower for tokens for the non-chaos triggered ability excludes power boosts from static abilities like Gaea's Anthem as well as boosts from auras and equipment. It does however count boosts from pumps like Giant Growth. I imagine the same problem would affect the chaos trigger that would use RememberedLKI in the count or RememberLKI param in the ChangeZone script line.

For reference the abilities are: "Whenever a creature dies, its controller distributes a number of +1/+1 counters equal to its power among any number of target creatures he or she controls." and "Whenever you roll Chaos, each player exiles all creatures he or she controls and puts X 1/1 green Saproling creature tokens onto the battlefield, where X is the total power of the creatures he or she exiled this way."
-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 Sloth » 08 Aug 2013, 09:10

moomarc wrote:Excuse the ignorance, but why do we expressly NOT remember lki for tokens changing zones? I'm trying to script Grand Ossuary, but TriggeredCard$CardPower for tokens for the non-chaos triggered ability excludes power boosts from static abilities like Gaea's Anthem as well as boosts from auras and equipment. It does however count boosts from pumps like Giant Growth. I imagine the same problem would affect the chaos trigger that would use RememberedLKI in the count or RememberLKI param in the ChangeZone script line.

For reference the abilities are: "Whenever a creature dies, its controller distributes a number of +1/+1 counters equal to its power among any number of target creatures he or she controls." and "Whenever you roll Chaos, each player exiles all creatures he or she controls and puts X 1/1 green Saproling creature tokens onto the battlefield, where X is the total power of the creatures he or she exiled this way."
I don't see a problem with returning LKI's for tokens. The problem is that getLKICopy can't handle tokens at the moment, but i think only a few additions need to be made to enable them (most notably the line "final Card newCopy = new Card(in.getUniqueNumber());" would need an alternative for tokens).
User avatar
Sloth
Programmer
 
Posts: 3498
Joined: 23 Jun 2009, 19:40
Has thanked: 125 times
Been thanked: 507 times

PreviousNext

Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 37 guests


Who is online

In total there are 37 users online :: 0 registered, 0 hidden and 37 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 37 guests

Login Form