Example #1
0
  public AkiriLineSlinger(UUID ownerId, CardSetInfo setInfo) {
    super(ownerId, setInfo, new CardType[] {CardType.CREATURE}, "{R}{W}");

    this.supertype.add("Legendary");
    this.subtype.add("Kor");
    this.subtype.add("Soldier");
    this.subtype.add("Ally");
    this.power = new MageInt(0);
    this.toughness = new MageInt(3);

    // First strike
    this.addAbility(FirstStrikeAbility.getInstance());

    // Vigilance
    this.addAbility(VigilanceAbility.getInstance());

    // Akiri, Line-Slinger gets +1/+0 for each artifact you control.
    Effect effect =
        new BoostSourceEffect(
            new PermanentsOnBattlefieldCount(filter),
            new StaticValue(0),
            Duration.WhileOnBattlefield);
    effect.setText("{this} gets +1/+0 for each artifact you control");
    this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));

    // Partner
    this.addAbility(PartnerAbility.getInstance());
  }
Example #2
0
  public ShieldOfTheRighteous(UUID ownerId) {
    super(
        ownerId,
        11,
        "Shield of the Righteous",
        Rarity.UNCOMMON,
        new CardType[] {CardType.ARTIFACT},
        "{W}{U}");
    this.expansionSetCode = "ARB";
    this.subtype.add("Equipment");

    this.color.setBlue(true);
    this.color.setWhite(true);

    // Equipped creature gets +0/+2 and has vigilance.
    this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(0, 2)));
    this.addAbility(
        new SimpleStaticAbility(
            Zone.BATTLEFIELD,
            new GainAbilityAttachedEffect(
                VigilanceAbility.getInstance(), AttachmentType.EQUIPMENT)));

    // Whenever equipped creature blocks a creature, that creature doesn't untap during its
    // controller's next untap step.
    this.addAbility(
        new BlocksCreatureAttachedTriggeredAbility(
            new SkipNextUntapTargetEffect("that creature"), "equipped", false, false, true));

    // Equip {2}
    this.addAbility(
        new EquipAbility(
            Outcome.AddAbility, new GenericManaCost(2), new TargetControlledCreaturePermanent()));
  }
Example #3
0
  public AjaniGoldmane(UUID ownerId) {
    super(
        ownerId,
        1,
        "Ajani Goldmane",
        Rarity.MYTHIC,
        new CardType[] {CardType.PLANESWALKER},
        "{2}{W}{W}");
    this.expansionSetCode = "M10";
    this.subtype.add("Ajani");
    this.color.setWhite(true);
    this.addAbility(
        new EntersBattlefieldAbility(
            new AddCountersSourceEffect(CounterType.LOYALTY.createInstance(4)), false));

    this.addAbility(new LoyaltyAbility(new GainLifeEffect(2), 1));

    Effects effects1 = new Effects();
    effects1.add(
        new AddCountersAllEffect(
            CounterType.P1P1.createInstance(), new FilterControlledCreaturePermanent()));
    effects1.add(
        new GainAbilityControlledEffect(
            VigilanceAbility.getInstance(), Duration.EndOfTurn, new FilterCreaturePermanent()));
    this.addAbility(new LoyaltyAbility(effects1, -1));

    this.addAbility(new LoyaltyAbility(new CreateTokenEffect(new AvatarToken()), -6));
  }
Example #4
0
  public WoodlandWanderer(UUID ownerId) {
    super(
        ownerId,
        198,
        "Woodland Wanderer",
        Rarity.RARE,
        new CardType[] {CardType.CREATURE},
        "{3}{G}");
    this.expansionSetCode = "BFZ";
    this.subtype.add("Elemental");
    this.power = new MageInt(2);
    this.toughness = new MageInt(2);

    // Vigilance
    this.addAbility(VigilanceAbility.getInstance());
    // Trample
    this.addAbility(TrampleAbility.getInstance());
    // <i>Converge</i> - Woodland Wanderer enters the battlefield with a +1/+1 counter on it for
    // each color of mana spent to cast it.
    this.addAbility(
        new EntersBattlefieldAbility(
            new AddCountersSourceEffect(
                CounterType.P1P1.createInstance(),
                ColorsOfManaSpentToCastCount.getInstance(),
                true),
            null,
            true,
            "<i>Converge</i> &mdash; {this} enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it.",
            null));
  }
Example #5
0
 public SwordOfVengeance(UUID ownerId) {
   super(
       ownerId, 216, "Sword of Vengeance", Rarity.RARE, new CardType[] {CardType.ARTIFACT}, "{3}");
   this.expansionSetCode = "M11";
   this.subtype.add("Equipment");
   this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3)));
   this.addAbility(
       new SimpleStaticAbility(
           Zone.BATTLEFIELD,
           new GainAbilityAttachedEffect(
               FirstStrikeAbility.getInstance(), AttachmentType.EQUIPMENT)));
   this.addAbility(
       new SimpleStaticAbility(
           Zone.BATTLEFIELD,
           new GainAbilityAttachedEffect(TrampleAbility.getInstance(), AttachmentType.EQUIPMENT)));
   this.addAbility(
       new SimpleStaticAbility(
           Zone.BATTLEFIELD,
           new GainAbilityAttachedEffect(
               VigilanceAbility.getInstance(), AttachmentType.EQUIPMENT)));
   this.addAbility(
       new SimpleStaticAbility(
           Zone.BATTLEFIELD,
           new GainAbilityAttachedEffect(HasteAbility.getInstance(), AttachmentType.EQUIPMENT)));
   this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(2, 0)));
 }
  public SentinelOfTheEternalWatch(UUID ownerId) {
    super(
        ownerId,
        30,
        "Sentinel of the Eternal Watch",
        Rarity.UNCOMMON,
        new CardType[] {CardType.CREATURE},
        "{5}{W}");
    this.expansionSetCode = "ORI";
    this.subtype.add("Giant");
    this.subtype.add("Soldier");
    this.power = new MageInt(4);
    this.toughness = new MageInt(6);

    // Vigilance
    this.addAbility(VigilanceAbility.getInstance());
    // At the beginning of combat on each opponent's turn, tap target creature that player controls.
    Ability ability =
        new BeginningOfCombatTriggeredAbility(
            Zone.BATTLEFIELD,
            new TapTargetEffect("target creature that player controls"),
            TargetController.OPPONENT,
            false,
            true);
    originalId = ability.getOriginalId();
    this.addAbility(ability);
  }
  public KalemneDiscipleOfIroas(UUID ownerId) {
    super(
        ownerId,
        999,
        "Kalemne, Disciple of Iroas",
        Rarity.MYTHIC,
        new CardType[] {CardType.CREATURE},
        "{2}{R}{W}");
    this.expansionSetCode = "C15";
    this.supertype.add("Legendary");
    this.subtype.add("Giant");
    this.subtype.add("Soldier");
    this.power = new MageInt(3);
    this.toughness = new MageInt(3);

    // Double strike
    this.addAbility(DoubleStrikeAbility.getInstance());

    // Vigilance
    this.addAbility(VigilanceAbility.getInstance());

    // Whenever you cast a creature spell with converted mana cost 5 or greater, you get an
    // experience counter.
    Effect effect =
        new AddCountersControllerEffect(CounterType.EXPERIENCE.createInstance(1), false);
    effect.setText("you get an experience counter");
    Ability ability = new SpellCastControllerTriggeredAbility(effect, filterSpell, false);
    this.addAbility(ability);

    // Kalemne, Disciple of Iroas gets +1/+1 for each experience counter you have.
    DynamicValue value = new SourceControllerExperienceCountersCount();
    this.addAbility(
        new SimpleStaticAbility(
            Zone.BATTLEFIELD, new BoostSourceEffect(value, value, Duration.WhileOnBattlefield)));
  }
Example #8
0
  public Brushstrider(UUID ownerId, CardSetInfo setInfo) {
    super(ownerId, setInfo, new CardType[] {CardType.CREATURE}, "{1}{G}");
    this.subtype.add("Beast");

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

    // Vigilance
    this.addAbility(VigilanceAbility.getInstance());
  }
Example #9
0
 public CelestialColonnadeToken() {
   super("", "4/4 white and blue Elemental creature with flying and vigilance");
   cardType.add(CardType.CREATURE);
   subtype.add("Elemental");
   color.setBlue(true);
   color.setWhite(true);
   power = new MageInt(4);
   toughness = new MageInt(4);
   addAbility(FlyingAbility.getInstance());
   addAbility(VigilanceAbility.getInstance());
 }
Example #10
0
  public AbbeyGriffin(UUID ownerId) {
    super(ownerId, 1, "Abbey Griffin", Rarity.COMMON, new CardType[] {CardType.CREATURE}, "{3}{W}");
    this.expansionSetCode = "ISD";
    this.subtype.add("Griffin");

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

    this.addAbility(FlyingAbility.getInstance());
    this.addAbility(VigilanceAbility.getInstance());
  }
Example #11
0
  public AkromaAngelOfWrath(UUID ownerId, CardSetInfo setInfo) {
    super(ownerId, setInfo, new CardType[] {CardType.CREATURE}, "{5}{W}{W}{W}");
    this.supertype.add("Legendary");
    this.subtype.add("Angel");

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

    this.addAbility(FlyingAbility.getInstance());
    this.addAbility(FirstStrikeAbility.getInstance());
    this.addAbility(VigilanceAbility.getInstance());
    this.addAbility(TrampleAbility.getInstance());
    this.addAbility(HasteAbility.getInstance());
    // protection from black and from red
    this.addAbility(ProtectionAbility.from(ObjectColor.BLACK, ObjectColor.RED));
  }
Example #12
0
  public VeteranCavalier(UUID ownerId) {
    super(
        ownerId,
        52,
        "Veteran Cavalier",
        Rarity.COMMON,
        new CardType[] {CardType.CREATURE},
        "{W}{W}");
    this.expansionSetCode = "9ED";
    this.subtype.add("Human");
    this.subtype.add("Knight");

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

    this.addAbility(VigilanceAbility.getInstance());
  }
Example #13
0
 public ShepherdOfTheLost(UUID ownerId) {
   super(
       ownerId,
       34,
       "Shepherd of the Lost",
       Rarity.UNCOMMON,
       new CardType[] {CardType.CREATURE},
       "{4}{W}");
   this.expansionSetCode = "ZEN";
   this.subtype.add("Angel");
   this.color.setWhite(true);
   this.power = new MageInt(3);
   this.toughness = new MageInt(3);
   this.addAbility(FlyingAbility.getInstance());
   this.addAbility(FirstStrikeAbility.getInstance());
   this.addAbility(VigilanceAbility.getInstance());
 }
Example #14
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 #15
0
 @Override
 public void build() {
   // Creatures you control have flying, first strike, vigilance, trample, haste, and protection
   // from black and from red.
   CompoundAbility abilities =
       new CompoundAbility(
           FlyingAbility.getInstance(),
           FirstStrikeAbility.getInstance(),
           VigilanceAbility.getInstance(),
           TrampleAbility.getInstance(),
           HasteAbility.getInstance(),
           new ProtectionAbility(filterBlack),
           new ProtectionAbility(filterRed));
   this.addAbility(
       new SimpleStaticAbility(
           Constants.Zone.BATTLEFIELD,
           new GainAbilityControlledEffect(
               abilities,
               Constants.Duration.WhileOnBattlefield,
               new FilterControlledCreaturePermanent("Creatures you control"))));
 }
Example #16
0
  public ToweringThunderfist(UUID ownerId) {
    super(
        ownerId,
        109,
        "Towering Thunderfist",
        Rarity.COMMON,
        new CardType[] {CardType.CREATURE},
        "{4}{R}");
    this.expansionSetCode = "GTC";
    this.subtype.add("Giant");
    this.subtype.add("Soldier");

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

    // {W}: Towering Thunderfist gains vigilance until end of turn.
    this.addAbility(
        new SimpleActivatedAbility(
            Zone.BATTLEFIELD,
            new GainAbilitySourceEffect(VigilanceAbility.getInstance(), Duration.EndOfTurn),
            new ManaCostsImpl("{W}")));
  }
Example #17
0
  public ChargingTroll(UUID ownerId) {
    super(
        ownerId,
        239,
        "Charging Troll",
        Rarity.UNCOMMON,
        new CardType[] {CardType.CREATURE},
        "{2}{G}{W}");
    this.expansionSetCode = "INV";
    this.subtype.add("Troll");

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

    // Vigilance
    this.addAbility(VigilanceAbility.getInstance());
    // {G}: Regenerate Charging Troll.
    Ability ability =
        new SimpleActivatedAbility(
            Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{G}"));
    this.addAbility(ability);
  }