Page 1 of 1

addExtrinsicKeyword(String s)

PostPosted: 17 Feb 2010, 17:39
by DennisBergkamp
Is there any reason the code for it looks like this?

Code: Select all
public void addExtrinsicKeyword(String s) {
     if(!getKeyword().contains(s)){
        if (s.startsWith("tap: add")) manaAbility.add(new Ability_Mana(this, s)
        {
           private static final long serialVersionUID = 221124403788942412L;
        });
        else extrinsicKeyword.add(s);
    }
  }
the "if(!getKeyword().contains(s))" block was probably added to prevent duplication of certain keywords, but the problem is that cards like Sidewinder Sliver will not work correctly (since Flanking stacks).

Then again, I might have been the one that added this check in the first place, I can't remember...

For now, I will uncomment the if block, however, it might cause problems for certain cards. Joiner Adept and Gemhide Sliver came to mind but after testing they turned out to be working alright (lands and slivers still only had one set of mana abilities, even with multiple of them in play).

Re: addExtrinsicKeyword(String s)

PostPosted: 17 Feb 2010, 19:22
by Rob Cashwalker
Yep, you added that.... And made it so that multiple keywords wouldn't stack.

MOST keywords don't stack.

The few that do, are ones that cause triggered abilities, like Exalted or what Lifelink USED to do. To handle this, maybe there needs to be a separate list of keywords that relate to triggered abilities.

Re: addExtrinsicKeyword(String s)

PostPosted: 18 Feb 2010, 02:12
by DennisBergkamp
Maybe we should add an "addStackingExtrinsicKeyword" method then, since only very few cards (Sidewinder Sliver, ... ) would actually use it. Most of the time we wouldn't want to stack them (looks much better aesthetically).