Page 122 of 141

Re: Card Development Questions

PostPosted: 05 Aug 2013, 14:05
by Marek14
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.

Re: Card Development Questions

PostPosted: 05 Aug 2013, 14:09
by friarsol
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.

Re: Card Development Questions

PostPosted: 06 Aug 2013, 13:22
by swordshine
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.

Re: Card Development Questions

PostPosted: 06 Aug 2013, 14:11
by Sloth
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).

Re: Card Development Questions

PostPosted: 07 Aug 2013, 00:43
by swordshine
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.

Re: Card Development Questions

PostPosted: 07 Aug 2013, 15:24
by swordshine
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.

Re: Card Development Questions

PostPosted: 07 Aug 2013, 15:26
by Sloth
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.

Re: Card Development Questions

PostPosted: 07 Aug 2013, 16:39
by drdev
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?

Re: Card Development Questions

PostPosted: 07 Aug 2013, 16:51
by friarsol
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

Re: Card Development Questions

PostPosted: 07 Aug 2013, 17:02
by drdev
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. :)

Re: Card Development Questions

PostPosted: 07 Aug 2013, 17:06
by friarsol
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.

Re: Card Development Questions

PostPosted: 07 Aug 2013, 17:32
by drdev
In that case I'm more than happy to do almost exclusively UI development.

Re: Card Development Questions

PostPosted: 08 Aug 2013, 00:15
by swordshine
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.

Re: Card Development Questions

PostPosted: 08 Aug 2013, 08:43
by moomarc
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."

Re: Card Development Questions

PostPosted: 08 Aug 2013, 09:10
by Sloth
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).