It is currently 18 Jul 2025, 16:39
   
Text Size

Help implementing Chainer, Dementia Master

Moderators: North, BetaSteward, noxx, jeffwadsworth, JayDi, TheElk801, LevelX, CCGHQ Admins

Help implementing Chainer, Dementia Master

Postby fireshoes » 02 Feb 2015, 23:07

Can anyone help me with Chainer's reanimation ability? I have the return from the graveyard done, but am not sure how to set the creature's color to black and subtype to Nightmare. I looked at Ashiok, Nightmare Weaver's second ability, but am not sure how to work it into Chainer. Also with Chainer's exile ability, can I use the same filter, which uses FilterCreaturePermanent, or do I need to create a second filter using FilterPermanent in case some non-creature permanent has somehow gained the Nightmare subtype?

Code: Select all
public class ChainerDementiaMaster extends CardImpl {
   
    private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Nightmare creatures");

    static {
        filter.add(new SubtypePredicate("Nightmare"));
    }

    public ChainerDementiaMaster(UUID ownerId) {
        super(ownerId, 56, "Chainer, Dementia Master", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{3}{B}{B}");
        this.expansionSetCode = "TOR";
        this.supertype.add("Legendary");
        this.subtype.add("Human");
        this.subtype.add("Minion");
        this.power = new MageInt(3);
        this.toughness = new MageInt(3);

        // Nightmare creatures get +1/+1.
        this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostAllEffect(1, 1, Duration.WhileOnBattlefield, filter, false)));

        // {B}{B}{B}, Pay 3 life: Put target creature card from a graveyard onto the battlefield under your control. That creature is black and is a Nightmare in addition to its other creature types.
        Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnFromGraveyardToBattlefieldTargetEffect(), new ManaCostsImpl("{B}{B}{B}"));
        ability.addCost(new PayLifeCost(3));
        this.addAbility(ability);
       
        // When Chainer, Dementia Master leaves the battlefield, exile all Nightmares.
        Ability ability2 = new LeavesBattlefieldTriggeredAbility(new ExileAllEffect(filter), false);
        this.addAbility(ability2);
    }

    public ChainerDementiaMaster(final ChainerDementiaMaster card) {
        super(card);
    }

    @Override
    public ChainerDementiaMaster copy() {
        return new ChainerDementiaMaster(this);
    }
}
User avatar
fireshoes
 
Posts: 536
Joined: 20 Aug 2014, 03:51
Has thanked: 201 times
Been thanked: 49 times

Re: Help implementing Chainer, Dementia Master

Postby LevelX » 03 Feb 2015, 00:59

Use or check the use of this classes:
AddCardSubTypeTargetEffect
BecomesColorTargetEffect
They are used for such effects.

You don't need a second filter because of:
205.1a
If an object’s card type is removed, the subtypes correlated with that card type will remain if they are also the subtypes of a card type the object currently has; otherwise, they are also removed for the entire time the object’s card type is removed.
User avatar
LevelX
DEVELOPER
 
Posts: 1677
Joined: 08 Dec 2011, 15:08
Has thanked: 174 times
Been thanked: 374 times

Re: Help implementing Chainer, Dementia Master

Postby Ukki » 02 Jun 2015, 03:13

Would this code work then? I added the two classes mentioned by LevelX using Sensei Golden-Tail as a template. I'm not sure about the duration being "custom" but that was used for golden tail so I rolled with it, maybe it should be WhileOnBattlefield?.

(This is my first crack at making a card, figured I'd start with one that someone had already begun if that's ok. I can't figure out how to get my mage server to run so I can't test it.)

Code: Select all
public class ChainerDementiaMaster extends CardImpl {

    private static final FilterCreaturePermanent filterCreatures = new FilterCreaturePermanent("Nightmare creatures");
   
    static {
        filterCreatures.add(new SubtypePredicate("Nightmare"));
    }
    public ChainerDementiaMaster(UUID ownerId) {
        super(ownerId, 56, "Chainer, Dementia Master", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{3}{B}{B}");
        this.expansionSetCode = "TOR";
        this.supertype.add("Legendary");
        this.subtype.add("Human");
        this.subtype.add("Minion");
        this.power = new MageInt(3);
        this.toughness = new MageInt(3);

        // Nightmare creatures get +1/+1.
        this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, filterCreatures, false)));
        // {B}{B}{B}, Pay 3 life: Put target creature card from a graveyard onto the battlefield under your control. That creature is black and is a Nightmare in addition to its other creature types.
        Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnFromGraveyardToBattlefieldTargetEffect(), new ManaCostsImpl("{B}{B}{B}"));
        ability.addCost(new PayLifeCost(3));
        ability.addEffect(new AddCardSubTypeTargetEffect("Nightmare",Duration.Custom));
        ability.addEffect(new BecomesColorTargetEffect(ObjectColor.BLACK,Duration.Custom));
        this.addAbility(ability);
       
        // When Chainer, Dementia Master leaves the battlefield, exile all Nightmares.
        Ability ability2 = new LeavesBattlefieldTriggeredAbility(new ExileAllEffect(filterCreatures), false);
        this.addAbility(ability2);
    }
   

    public ChainerDementiaMaster(final ChainerDementiaMaster card) {
        super(card);
    }

    @Override
    public ChainerDementiaMaster copy() {
        return new ChainerDementiaMaster(this);
    }
}
Ukki
 
Posts: 19
Joined: 20 Sep 2014, 03:02
Has thanked: 0 time
Been thanked: 0 time


Return to Developers Talk

Who is online

Users browsing this forum: No registered users and 2 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 2 users online :: 0 registered, 0 hidden and 2 guests (based on users active over the past 10 minutes)
Most users ever online was 7303 on 15 Jul 2025, 20:46

Users browsing this forum: No registered users and 2 guests

Login Form