Example #1
0
  public SpitefulMotives(UUID ownerId) {
    super(
        ownerId,
        183,
        "Spiteful Motives",
        Rarity.UNCOMMON,
        new CardType[] {CardType.ENCHANTMENT},
        "{3}{R}");
    this.expansionSetCode = "SOI";
    this.subtype.add("Aura");

    // Flash
    this.addAbility(FlashAbility.getInstance());
    // Enchant creature
    TargetPermanent auraTarget = new TargetCreaturePermanent();
    this.getSpellAbility().addTarget(auraTarget);
    this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature));
    Ability ability = new EnchantAbility(auraTarget.getTargetName());
    this.addAbility(ability);
    // Enchanted creature gets +3/+0 and has first strike.
    Effect effect = new BoostEnchantedEffect(3, 0, Duration.WhileOnBattlefield);
    effect.setText("Enchanted creature gets +3/+0");
    ability = new SimpleStaticAbility(Zone.BATTLEFIELD, effect);
    effect = new GainAbilityAttachedEffect(FirstStrikeAbility.getInstance(), AttachmentType.AURA);
    effect.setText("and has first strike");
    ability.addEffect(effect);
    this.addAbility(ability);
  }
Example #2
0
  public AlexisCloak(UUID ownerId) {
    super(
        ownerId,
        29,
        "Alexi's Cloak",
        Rarity.COMMON,
        new CardType[] {CardType.ENCHANTMENT},
        "{1}{U}");
    this.expansionSetCode = "PCY";
    this.subtype.add("Aura");

    // Flash
    this.addAbility(FlashAbility.getInstance());
    // Enchant creature
    TargetPermanent auraTarget = new TargetCreaturePermanent();
    this.getSpellAbility().addTarget(auraTarget);
    this.getSpellAbility().addEffect(new AttachEffect(Outcome.AddAbility));
    Ability ability = new EnchantAbility(auraTarget.getTargetName());
    this.addAbility(ability);
    // Enchanted creature has shroud.
    this.addAbility(
        new SimpleStaticAbility(
            Zone.BATTLEFIELD,
            new GainAbilityAttachedEffect(ShroudAbility.getInstance(), AttachmentType.AURA)));
  }
Example #3
0
  public MasakoTheHumorless(UUID ownerId, CardSetInfo setInfo) {
    super(ownerId, setInfo, new CardType[] {CardType.CREATURE}, "{2}{W}");
    this.supertype.add("Legendary");
    this.subtype.add("Human");
    this.subtype.add("Advisor");

    this.power = new MageInt(2);
    this.toughness = new MageInt(1);

    // Flash
    this.addAbility(FlashAbility.getInstance());
    // Tapped creatures you control can block as though they were untapped.
    this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BlockTappedEffect()));
  }
Example #4
0
  public Skylasher(UUID ownerId) {
    super(ownerId, 49, "Skylasher", Rarity.RARE, new CardType[] {CardType.CREATURE}, "{1}{G}");
    this.expansionSetCode = "DGM";
    this.subtype.add("Insect");
    this.color.setGreen(true);
    this.power = new MageInt(2);
    this.toughness = new MageInt(2);

    // Flash
    this.addAbility(FlashAbility.getInstance());
    // Skylasher can't be countered.
    this.addAbility(new CantCounterAbility());
    // Reach, protection from blue
    this.addAbility(ReachAbility.getInstance());
    this.addAbility(new ProtectionAbility(filter));
  }
Example #5
0
  public TorrentialGearhulk(UUID ownerId, CardSetInfo setInfo) {
    super(ownerId, setInfo, new CardType[] {CardType.ARTIFACT, CardType.CREATURE}, "{4}{U}{U}");
    this.subtype.add("Construct");
    this.power = new MageInt(5);
    this.toughness = new MageInt(6);

    // Flash
    this.addAbility(FlashAbility.getInstance());

    // When Torrential Gearhulk enters the battlefield, you may cast target instant card from your
    // graveyard without paying its mana cost.
    // If that card would be put into your graveyard this turn, exile it instead.
    Ability ability = new EntersBattlefieldTriggeredAbility(new TorrentialGearhulkEffect());
    ability.addTarget(new TargetCardInYourGraveyard(filter));
    this.addAbility(ability);
  }
Example #6
0
  public SulfurElemental(UUID ownerId, CardSetInfo setInfo) {
    super(ownerId, setInfo, new CardType[] {CardType.CREATURE}, "{2}{R}");
    this.subtype.add("Elemental");

    this.power = new MageInt(3);
    this.toughness = new MageInt(2);

    // Flash
    this.addAbility(FlashAbility.getInstance());
    // Split second
    this.addAbility(new SplitSecondAbility());
    // White creatures get +1/-1.
    this.addAbility(
        new SimpleStaticAbility(
            Zone.BATTLEFIELD,
            new BoostAllEffect(1, -1, Duration.WhileOnBattlefield, filter, false)));
  }
Example #7
0
  public Quickling(UUID ownerId) {
    super(ownerId, 76, "Quickling", Rarity.UNCOMMON, new CardType[] {CardType.CREATURE}, "{1}{U}");
    this.expansionSetCode = "M15";
    this.subtype.add("Faerie");
    this.subtype.add("Rogue");

    this.power = new MageInt(2);
    this.toughness = new MageInt(2);

    // Flying
    this.addAbility(FlyingAbility.getInstance());
    // Flash
    this.addAbility(FlashAbility.getInstance());
    // When Quickling enters the battlefield, sacrifice it unless you return another creature you
    // control to its owner's hand.
    this.addAbility(new EntersBattlefieldTriggeredAbility(new QuicklingEffect()));
  }
Example #8
0
  public Pestermite(UUID ownerId) {
    super(ownerId, 78, "Pestermite", Rarity.COMMON, new CardType[] {CardType.CREATURE}, "{2}{U}");
    this.expansionSetCode = "LRW";
    this.subtype.add("Faerie");
    this.subtype.add("Rogue");

    this.power = new MageInt(2);
    this.toughness = new MageInt(1);

    // Flash
    this.addAbility(FlashAbility.getInstance());
    // Flying
    this.addAbility(FlyingAbility.getInstance());
    // When Pestermite enters the battlefield, you may tap or untap target permanent.
    Ability ability = new EntersBattlefieldTriggeredAbility(new MayTapOrUntapTargetEffect());
    ability.addTarget(new TargetPermanent());
    this.addAbility(ability);
  }
Example #9
0
  public Dawnfluke(UUID ownerId, CardSetInfo setInfo) {
    super(ownerId, setInfo, new CardType[] {CardType.CREATURE}, "{3}{W}");
    this.subtype.add("Elemental");

    this.power = new MageInt(0);
    this.toughness = new MageInt(3);

    // Flash
    this.addAbility(FlashAbility.getInstance());
    // When Dawnfluke enters the battlefield, prevent the next 3 damage that would be dealt to
    // target creature or player this turn.
    Ability ability =
        new EntersBattlefieldTriggeredAbility(
            new PreventDamageToTargetEffect(Duration.EndOfTurn, 3));
    Target target = new TargetCreatureOrPlayer();
    ability.addTarget(target);
    this.addAbility(ability);
    // Evoke {W}
    this.addAbility(new EvokeAbility(this, "{W}"));
  }
Example #10
0
  public MistbindClique(UUID ownerId) {
    super(
        ownerId, 75, "Mistbind Clique", Rarity.RARE, new CardType[] {CardType.CREATURE}, "{3}{U}");
    this.expansionSetCode = "LRW";
    this.subtype.add("Faerie");
    this.subtype.add("Wizard");

    this.color.setBlue(true);
    this.power = new MageInt(4);
    this.toughness = new MageInt(4);

    // Flash
    this.addAbility(FlashAbility.getInstance());
    // Flying
    this.addAbility(FlyingAbility.getInstance());
    // Champion a Faerie
    this.addAbility(new ChampionAbility(this, "Faerie"));

    // When a Faerie is championed with Mistbind Clique, tap all lands target player controls.
    this.addAbility(new MistbindCliqueAbility());
  }
Example #11
0
  public ScionOfOona(UUID ownerId) {
    super(ownerId, 83, "Scion of Oona", Rarity.RARE, new CardType[] {CardType.CREATURE}, "{2}{U}");
    this.expansionSetCode = "LRW";
    this.subtype.add("Faerie");
    this.subtype.add("Soldier");
    this.color.setBlue(true);
    this.power = new MageInt(1);
    this.toughness = new MageInt(1);
    this.addAbility(FlashAbility.getInstance());
    this.addAbility(FlyingAbility.getInstance());

    // Other Faerie creatures you control get +1/+1.
    this.addAbility(
        new SimpleStaticAbility(
            Zone.BATTLEFIELD,
            new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, filter, true)));
    // Other Faeries you control have shroud.
    this.addAbility(
        new SimpleStaticAbility(
            Zone.BATTLEFIELD,
            new GainAbilityControlledEffect(
                ShroudAbility.getInstance(), Duration.EndOfTurn, filter, true)));
  }
Example #12
0
  public ThunderclapWyvern(UUID ownerId) {
    super(
        ownerId,
        218,
        "Thunderclap Wyvern",
        Rarity.UNCOMMON,
        new CardType[] {CardType.CREATURE},
        "{2}{W}{U}");
    this.expansionSetCode = "ORI";
    this.subtype.add("Drake");
    this.power = new MageInt(2);
    this.toughness = new MageInt(3);

    // Flash
    this.addAbility(FlashAbility.getInstance());

    // Flying
    this.addAbility(FlyingAbility.getInstance());

    // Other creatures you control with flying get +1/+1.
    Effect effect = new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, filter, true);
    effect.setText("Other creatures you control with flying get +1/+1");
    this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
  }
Example #13
0
  public DrownyardBehemoth(UUID ownerId) {
    super(
        ownerId,
        4,
        "Drownyard Behemoth",
        Rarity.UNCOMMON,
        new CardType[] {CardType.CREATURE},
        "{9}");
    this.expansionSetCode = "EMN";
    this.subtype.add("Eldrazi");
    this.subtype.add("Crab");
    this.power = new MageInt(5);
    this.toughness = new MageInt(7);

    // Flash
    this.addAbility(FlashAbility.getInstance());
    // Emerge {7}{U}
    this.addAbility(new EmergeAbility(this, new ManaCostsImpl<>("{7}{U}")));

    // Drownyard Behemoth has hexproof as long as it entered the battlefield this turn.
    this.addAbility(
        new AsEntersBattlefieldAbility(
            new GainAbilitySourceEffect(HexproofAbility.getInstance(), Duration.EndOfTurn)));
  }
Example #14
0
  public AvenMindcensor(UUID ownerId) {
    super(
        ownerId,
        18,
        "Aven Mindcensor",
        Rarity.UNCOMMON,
        new CardType[] {CardType.CREATURE},
        "{2}{W}");
    this.expansionSetCode = "FUT";
    this.subtype.add("Bird");
    this.subtype.add("Wizard");

    this.color.setWhite(true);
    this.power = new MageInt(2);
    this.toughness = new MageInt(1);

    // Flash
    this.addAbility(FlashAbility.getInstance());
    // Flying
    this.addAbility(FlyingAbility.getInstance());
    // If an opponent would search a library, that player searches the top four cards of that
    // library instead.
    this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new AvenMindcensorEffect()));
  }
Example #15
0
  public CallerOfTheClaw(UUID ownerId) {
    super(
        ownerId,
        121,
        "Caller of the Claw",
        Rarity.RARE,
        new CardType[] {CardType.CREATURE},
        "{2}{G}");
    this.expansionSetCode = "LGN";
    this.subtype.add("Elf");

    this.color.setGreen(true);
    this.power = new MageInt(2);
    this.toughness = new MageInt(2);

    // Flash
    this.addAbility(FlashAbility.getInstance());
    // When Caller of the Claw enters the battlefield, put a 2/2 green Bear creature token onto the
    // battlefield for each nontoken creature put into your graveyard from the battlefield this
    // turn.
    this.getSpellAbility().addWatcher(new CallerOfTheClawWatcher());
    Effect effect = new CreateTokenEffect(new BearToken(), new CallerOfTheClawDynamicValue());
    this.addAbility(new EntersBattlefieldTriggeredAbility(effect));
  }