forked from External/mage
54 lines
2 KiB
Java
54 lines
2 KiB
Java
|
|
package mage.cards.a;
|
|
|
|
import java.util.UUID;
|
|
import mage.MageInt;
|
|
import mage.abilities.effects.common.continuous.AddChosenSubtypeEffect;
|
|
import mage.abilities.common.AsEntersBattlefieldAbility;
|
|
import mage.abilities.common.SimpleStaticAbility;
|
|
import mage.abilities.effects.common.ChooseCreatureTypeEffect;
|
|
import mage.abilities.effects.common.continuous.BoostAllOfChosenSubtypeEffect;
|
|
import mage.abilities.effects.common.enterAttribute.EnterAttributeAddChosenSubtypeEffect;
|
|
import mage.cards.CardImpl;
|
|
import mage.cards.CardSetInfo;
|
|
import mage.constants.*;
|
|
import mage.filter.common.FilterCreaturePermanent;
|
|
|
|
/**
|
|
* @author nantuko
|
|
*/
|
|
public final class AdaptiveAutomaton extends CardImpl {
|
|
|
|
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures you control of the chosen type");
|
|
|
|
static {
|
|
filter.add(TargetController.YOU.getControllerPredicate());
|
|
}
|
|
|
|
public AdaptiveAutomaton(UUID ownerId, CardSetInfo setInfo) {
|
|
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{3}");
|
|
this.subtype.add(SubType.CONSTRUCT);
|
|
|
|
this.power = new MageInt(2);
|
|
this.toughness = new MageInt(2);
|
|
|
|
// As Adaptive Automaton enters the battlefield, choose a creature type.
|
|
// Adaptive Automaton is the chosen type in addition to its other types.
|
|
AsEntersBattlefieldAbility ability = new AsEntersBattlefieldAbility(new ChooseCreatureTypeEffect(Outcome.BoostCreature));
|
|
ability.addEffect(new EnterAttributeAddChosenSubtypeEffect());
|
|
this.addAbility(ability);
|
|
|
|
this.addAbility(new SimpleStaticAbility(new AddChosenSubtypeEffect()));
|
|
// Other creatures you control of the chosen type get +1/+1.
|
|
this.addAbility(new SimpleStaticAbility(new BoostAllOfChosenSubtypeEffect(1, 1, Duration.WhileOnBattlefield, filter, true)));
|
|
}
|
|
|
|
private AdaptiveAutomaton(final AdaptiveAutomaton card) {
|
|
super(card);
|
|
}
|
|
|
|
@Override
|
|
public AdaptiveAutomaton copy() {
|
|
return new AdaptiveAutomaton(this);
|
|
}
|
|
}
|