Page 1 of 1

Goblin Sharpshooter

PostPosted: 24 Feb 2011, 14:57
by Chris H.
Currently, Goblin Sharpshooter looks like this, notice the card specific keyword:

Goblin Sharpshooter card | Open
Name:Goblin Sharpshooter
ManaCost:2 R
Types:Creature Goblin
Text:no text
PT:1/1
A:AB$DealDamage | Cost$ T | Tgt$ TgtCP | NumDmg$ 1 | SpellDescription$ CARDNAME deals 1 damage to target creature or player.
K:CARDNAME doesn't untap during your untap step.
K:Whenever a creature is put into a graveyard from the battlefield, untap Goblin Sharpshooter.
SVar:Rarity:Rare
SVar:Picture:http://www.wizards.com/global/images/magic/general/goblin_sharpshooter.jpg
SetInfo:ONS|Rare|http://magiccards.info/scans/en/on/207.jpg
End


We have a section of code in GameActionUtil that untaps the Goblin Sharpshooter without using the stack:

Code: Select all
    private static void destroyCreature_Goblin_Sharpshooter(Card c, Card destroyed) {
        //not using stack for this one
        if(AllZone.GameAction.isCardInPlay(c) && c.isTapped()) c.untap();
    }
`
If this card is converted to triggers, the untap will use the stack. So, should this card be converted to triggers which would use the stack or should this card be given a note stating do not convert.

I thought that I would ask before moving forward on this card. :)

Re: Goblin Sharpshooter

PostPosted: 24 Feb 2011, 15:32
by Hellfish
I think it can be converted fine since, AFAICT, it's just a straight-forward triggered ability.

Re: Goblin Sharpshooter

PostPosted: 24 Feb 2011, 15:39
by friarsol
There are lots of cards that incorrectly don't use the stack that are hardcoded, I'm not sure when those decisions were made, but in general they are incorrect.

Hellfish is right. There's nothing tricky about this one.

The best part is clearing out these one-time use keywords.

Re: Goblin Sharpshooter

PostPosted: 24 Feb 2011, 16:10
by Chris H.
Thank you for the confirmation, Hellfish and Sol. :)

I suspect that cards that are implemented this way were done so since it requires less time to code the cards and it tends not to grow the source code by large amounts of new code for a single card.

I spent a lot of time trying to actually find this keyword and was unsuccessful. It's only purpose may be to play that text string into the card text area. The actual test in GameActionUtil tests for the card name and not for the keyword as far as I can tell. But I decided it was not worth too much time to try and track this down. :)

And yes, I do not mind deprecating another keyword. 8)

Re: Goblin Sharpshooter

PostPosted: 24 Feb 2011, 17:23
by slapshot5
Chris H. wrote:I spent a lot of time trying to actually find this keyword and was unsuccessful. It's only purpose may be to play that text string into the card text area. The actual test in GameActionUtil tests for the card name and not for the keyword as far as I can tell. But I decided it was not worth too much time to try and track this down. :)
I've run into this a couple time. I wouldn't be surprised if there are a few others out there.

-slapshot5

Re: Goblin Sharpshooter

PostPosted: 24 Feb 2011, 17:51
by Chris H.
slapshot5 wrote:
Chris H. wrote:I spent a lot of time trying to actually find this keyword and was unsuccessful. It's only purpose may be to play that text string into the card text area. The actual test in GameActionUtil tests for the card name and not for the keyword as far as I can tell. But I decided it was not worth too much time to try and track this down. :)
I've run into this a couple time. I wouldn't be surprised if there are a few others out there.
`
There are a few dealing with auras that I put in myself a long time ago. The aura code may need to be redone at some point to bring it up to date with recent advancements.