Example #1
0
  public SoulOfNewPhyrexia(UUID ownerId, CardSetInfo setInfo) {
    super(ownerId, setInfo, new CardType[] {CardType.ARTIFACT, CardType.CREATURE}, "{6}");
    this.subtype.add("Avatar");

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

    // Trample
    this.addAbility(TrampleAbility.getInstance());
    // {5}: Permanents you control gain indestructible until end of turn.
    this.addAbility(
        new SimpleActivatedAbility(
            Zone.BATTLEFIELD,
            new GainAbilityControlledEffect(
                IndestructibleAbility.getInstance(), Duration.EndOfTurn),
            new GenericManaCost(5)));
    // {5}, Exile Soul of New Phyrexia from your graveyard: Permanents you control gain
    // indestructible until end of turn.
    Ability ability =
        new SimpleActivatedAbility(
            Zone.GRAVEYARD,
            new GainAbilityControlledEffect(
                IndestructibleAbility.getInstance(), Duration.EndOfTurn),
            new GenericManaCost(5));
    ability.addCost(new ExileSourceFromGraveCost());
    this.addAbility(ability);
  }
  public KarametraGodOfHarvests(UUID ownerId) {
    super(
        ownerId,
        148,
        "Karametra, God of Harvests",
        Rarity.MYTHIC,
        new CardType[] {CardType.ENCHANTMENT, CardType.CREATURE},
        "{3}{G}{W}");
    this.expansionSetCode = "BNG";
    this.supertype.add("Legendary");
    this.subtype.add("God");

    this.power = new MageInt(6);
    this.toughness = new MageInt(7);

    // Indestructible
    this.addAbility(IndestructibleAbility.getInstance());
    // As long as your devotion to green and white is less than seven, Karametra isn't a creature.
    Effect effect =
        new LoseCreatureTypeSourceEffect(
            new DevotionCount(ColoredManaSymbol.G, ColoredManaSymbol.W), 7);
    effect.setText(
        "As long as your devotion to green and white is less than seven, Karametra isn't a creature");
    this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
    // Whenever you cast a creature spell, you may search your library for a Forest or Plains card,
    // put it onto the battlefield tapped, then shuffle your library.
    this.addAbility(
        new SpellCastControllerTriggeredAbility(
            new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter), true),
            new FilterCreatureSpell("a creature spell"),
            true));
  }
Example #3
0
  public DauntlessEscort(UUID ownerId) {
    super(
        ownerId,
        67,
        "Dauntless Escort",
        Rarity.RARE,
        new CardType[] {CardType.CREATURE},
        "{1}{G}{W}");
    this.expansionSetCode = "ARB";
    this.subtype.add("Rhino");
    this.subtype.add("Soldier");

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

    // Sacrifice Dauntless Escort: Creatures you control are indestructible this turn.
    FilterPermanent filter = new FilterControlledCreaturePermanent("Creatures you control");
    Effect effect =
        new GainAbilityAllEffect(
            IndestructibleAbility.getInstance(), Duration.WhileOnBattlefield, filter, false);
    effect.setText("Creatures you control are indestructible this turn");
    this.addAbility(
        new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new SacrificeSourceCost()));
  }
Example #4
0
 public DarksteelBrute(UUID ownerId) {
   super(
       ownerId,
       108,
       "Darksteel Brute",
       Rarity.UNCOMMON,
       new CardType[] {CardType.ARTIFACT},
       "{2}");
   this.expansionSetCode = "DST";
   this.addAbility(IndestructibleAbility.getInstance());
   this.addAbility(
       new SimpleActivatedAbility(
           Zone.BATTLEFIELD,
           new BecomesCreatureSourceEffect(new DarksteelBruteToken(), "", Duration.EndOfTurn),
           new GenericManaCost(3)));
 }
Example #5
0
  public AjanisPresence(UUID ownerId) {
    super(ownerId, 2, "Ajani's Presence", Rarity.COMMON, new CardType[] {CardType.INSTANT}, "{W}");
    this.expansionSetCode = "JOU";

    // Strive - Ajani's Presence costs {2}{W} more to cast for each target beyond the first.
    this.addAbility(new StriveAbility("{2}{W}"));

    // Any number of target creatures each get +1/+1 and gain indestructible until end of turn.
    Effect effect = new BoostTargetEffect(1, 1, Duration.EndOfTurn);
    effect.setText("Any number of target creatures each get +1/+1");
    this.getSpellAbility().addEffect(effect);
    effect = new GainAbilityTargetEffect(IndestructibleAbility.getInstance(), Duration.EndOfTurn);
    effect.setText("and gain indestructible until end of turn");
    this.getSpellAbility().addEffect(effect);
    this.getSpellAbility().addTarget(new TargetCreaturePermanent(0, Integer.MAX_VALUE));
  }
Example #6
0
  public MyojinOfLifesWeb(UUID ownerId) {
    super(
        ownerId,
        229,
        "Myojin of Life's Web",
        Rarity.RARE,
        new CardType[] {CardType.CREATURE},
        "{6}{G}{G}{G}");
    this.expansionSetCode = "CHK";
    this.supertype.add("Legendary");
    this.subtype.add("Spirit");

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

    this.addWatcher(new CastFromHandWatcher());

    // Myojin of Life's Web enters the battlefield with a divinity counter on it if you cast it from
    // your hand.
    this.addAbility(
        new EntersBattlefieldAbility(
            new ConditionalOneShotEffect(
                new AddCountersSourceEffect(CounterType.DIVINITY.createInstance()),
                new CastFromHandCondition(),
                ""),
            "{this} enters the battlefield with a divinity counter on it if you cast it from your hand"));
    // Myojin of Life's Web is indestructible as long as it has a divinity counter on it.
    this.addAbility(
        new SimpleStaticAbility(
            Zone.BATTLEFIELD,
            new ConditionalContinousEffect(
                new GainAbilitySourceEffect(
                    IndestructibleAbility.getInstance(), Duration.WhileOnBattlefield),
                new HasCounterCondition(CounterType.DIVINITY),
                "{this} is indestructible as long as it has a divinity counter on it")));
    // Remove a divinity counter from Myojin of Life's Web: Put any number of creature cards from
    // your hand onto the battlefield.
    Ability ability =
        new SimpleActivatedAbility(
            Zone.BATTLEFIELD,
            new PutOntoBattlefieldTargetEffect(false),
            new RemoveCountersSourceCost(CounterType.DIVINITY.createInstance()));
    ability.addTarget(new TargetCardInHand(0, Integer.MAX_VALUE, filter));
    this.addAbility(ability);
  }
Example #7
0
  public HeliodGodOfTheSun(UUID ownerId) {
    super(
        ownerId,
        17,
        "Heliod, God of the Sun",
        Rarity.MYTHIC,
        new CardType[] {CardType.ENCHANTMENT, CardType.CREATURE},
        "{3}{W}");
    this.expansionSetCode = "THS";
    this.supertype.add("Legendary");
    this.subtype.add("God");

    this.power = new MageInt(5);
    this.toughness = new MageInt(6);

    // Indestructible
    this.addAbility(IndestructibleAbility.getInstance());

    // As long as your devotion to white is less than five, Heliod isn't a creature.<i>(Each {W} in
    // the mana costs of permanents you control counts towards your devotion to white.)</i>
    Effect effect = new LoseCreatureTypeSourceEffect(new DevotionCount(ColoredManaSymbol.W), 5);
    effect.setText(
        "As long as your devotion to white is less than five, Heliod isn't a creature.<i>(Each {W} in the mana costs of permanents you control counts towards your devotion to white.)</i>");
    this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));

    // Other creatures you control have vigilance.
    this.addAbility(
        new SimpleStaticAbility(
            Zone.BATTLEFIELD,
            new GainAbilityControlledEffect(
                VigilanceAbility.getInstance(),
                Duration.WhileOnBattlefield,
                new FilterCreaturePermanent(),
                true)));

    // {2}{W}{W}: Put a 2/1 white Cleric enchantment creature token onto the battlefield.
    this.addAbility(
        new SimpleActivatedAbility(
            Zone.BATTLEFIELD,
            new CreateTokenEffect(new HeliodGodOfTheSunToken()),
            new ManaCostsImpl("{2}{W}{W}")));
  }
Example #8
0
  public ErebossTitan(UUID ownerId, CardSetInfo setInfo) {
    super(ownerId, setInfo, new CardType[] {CardType.CREATURE}, "{1}{B}{B}{B}");
    this.subtype.add("Giant");
    this.power = new MageInt(5);
    this.toughness = new MageInt(5);

    // Erebos's Titan has indestructible as long as no opponent controls a creature.
    this.addAbility(
        new SimpleStaticAbility(
            Zone.BATTLEFIELD,
            new ConditionalContinuousEffect(
                new GainAbilitySourceEffect(
                    IndestructibleAbility.getInstance(), Duration.WhileOnBattlefield),
                new PermanentsOnTheBattlefieldCondition(
                    filter, PermanentsOnTheBattlefieldCondition.CountType.EQUAL_TO, 0, false),
                "As long as your opponents control no creatures, {this} has indestructible")));

    // Whenever a creature leaves an opponent's graveyard, you may discard a card. If you do, return
    // Erebos's Titan from your graveyard to your hand.
    this.addAbility(new ErebossTitanTriggeredAbility());
  }
  public MogisGodOfSlaughter(UUID ownerId) {
    super(
        ownerId,
        151,
        "Mogis, God of Slaughter",
        Rarity.MYTHIC,
        new CardType[] {CardType.ENCHANTMENT, CardType.CREATURE},
        "{2}{B}{R}");
    this.expansionSetCode = "BNG";
    this.supertype.add("Legendary");
    this.subtype.add("God");

    this.power = new MageInt(7);
    this.toughness = new MageInt(5);

    // Indestructible
    this.addAbility(IndestructibleAbility.getInstance());
    // As long as your devotion to black and red is less than seven, Mogis isn't a creature.
    Effect effect =
        new LoseCreatureTypeSourceEffect(
            new DevotionCount(ColoredManaSymbol.B, ColoredManaSymbol.R), 7);
    effect.setText(
        "As long as your devotion to black and red is less than seven, Mogis isn't a creature");
    this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));

    // At the beginning of each opponent's upkeep, Mogis deals 2 damage to that player unless he or
    // she sacrifices a creature.
    effect =
        new DoUnlessTargetPaysCost(
            new DamageTargetEffect(2, false, "that player"),
            new SacrificeTargetCost(new TargetControlledCreaturePermanent()),
            "Sacrifice a creature? (otherwise you get 2 damage)");
    effect.setText("Mogis deals 2 damage to that player unless he or she sacrifices a creature");
    Ability ability =
        new BeginningOfUpkeepTriggeredAbility(
            Zone.BATTLEFIELD, effect, TargetController.OPPONENT, false, true);
    this.addAbility(ability);
  }
Example #10
0
  public StuffyDoll(UUID ownerId) {
    super(
        ownerId,
        264,
        "Stuffy Doll",
        Rarity.RARE,
        new CardType[] {CardType.ARTIFACT, CardType.CREATURE},
        "{5}");
    this.expansionSetCode = "TSP";
    this.subtype.add("Construct");
    this.power = new MageInt(0);
    this.toughness = new MageInt(1);

    // As Stuffy Doll enters the battlefield, choose a player.
    this.addAbility(new AsEntersBattlefieldAbility(new StuffyDollChoosePlayerEffect()));
    // Stuffy Doll is indestructible.
    this.addAbility(IndestructibleAbility.getInstance());
    // Whenever Stuffy Doll is dealt damage, it deals that much damage to the chosen player.
    this.addAbility(new StuffyDollTriggeredAbility());
    // {tap}: Stuffy Doll deals 1 damage to itself.
    this.addAbility(
        new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageSelfEffect(), new TapSourceCost()));
  }