示例#1
0
  public NyleasEmissary(UUID ownerId) {
    super(
        ownerId,
        168,
        "Nylea's Emissary",
        Rarity.UNCOMMON,
        new CardType[] {CardType.ENCHANTMENT, CardType.CREATURE},
        "{3}{G}");
    this.expansionSetCode = "THS";
    this.subtype.add("Cat");

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

    // Bestow {5}{G}
    this.addAbility(new BestowAbility(this, "{5}{G}"));
    // Trample
    this.addAbility(TrampleAbility.getInstance());
    // Enchanted creature gets +3/+3 and has trample.
    Ability ability =
        new SimpleStaticAbility(
            Zone.BATTLEFIELD, new BoostEnchantedEffect(3, 3, Duration.WhileOnBattlefield));
    ability.addEffect(
        new GainAbilityAttachedEffect(
            TrampleAbility.getInstance(),
            AttachmentType.AURA,
            Duration.WhileOnBattlefield,
            "and has trample"));
    this.addAbility(ability);
  }
示例#2
0
 public SunriseSovereign(UUID ownerId) {
   super(
       ownerId,
       192,
       "Sunrise Sovereign",
       Rarity.RARE,
       new CardType[] {CardType.CREATURE},
       "{5}{R}");
   this.expansionSetCode = "LRW";
   this.subtype.add("Giant");
   this.subtype.add("Warrior");
   this.color.setRed(true);
   this.power = new MageInt(5);
   this.toughness = new MageInt(5);
   // Other Giant creatures you control get +2/+2 and have trample.
   this.addAbility(
       new SimpleStaticAbility(
           Constants.Zone.BATTLEFIELD,
           new BoostControlledEffect(2, 2, Constants.Duration.WhileOnBattlefield, filter, true)));
   this.addAbility(
       new SimpleStaticAbility(
           Constants.Zone.BATTLEFIELD,
           new GainAbilityControlledEffect(
               TrampleAbility.getInstance(),
               Constants.Duration.WhileOnBattlefield,
               filter,
               true)));
 }
示例#3
0
  public KolaghanForerunners(UUID ownerId) {
    super(
        ownerId,
        144,
        "Kolaghan Forerunners",
        Rarity.UNCOMMON,
        new CardType[] {CardType.CREATURE},
        "{2}{R}");
    this.expansionSetCode = "DTK";
    this.subtype.add("Human");
    this.subtype.add("Berserker");
    this.power = new MageInt(0);
    this.toughness = new MageInt(3);

    // Trample
    this.addAbility(TrampleAbility.getInstance());

    // Kolaghan Forerunners' power is equal to the number of creatures you control.
    Effect effect =
        new SetPowerSourceEffect(
            new PermanentsOnBattlefieldCount(
                new FilterControlledCreaturePermanent("creatures you control")),
            Duration.EndOfGame);
    this.addAbility(new SimpleStaticAbility(Zone.ALL, effect));

    // Dash {2}{R} <i.(You may cast this spell for its dash cost. If you do it gains haste and it's
    // returned to its owner's hand at the beginning of the next end step.)</i>
    this.addAbility(new DashAbility(this, "{2}{R}"));
  }
示例#4
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)));
 }
示例#5
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);
  }
示例#6
0
  public BringerOfTheGreenDawn(UUID ownerId) {
    super(
        ownerId,
        83,
        "Bringer of the Green Dawn",
        Rarity.RARE,
        new CardType[] {CardType.CREATURE},
        "{7}{G}{G}");
    this.expansionSetCode = "5DN";
    this.subtype.add("Bringer");

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

    // You may pay {W}{U}{B}{R}{G} rather than pay Bringer of the Green Dawn's mana cost.
    this.addAbility(new AlternativeCostSourceAbility(new ManaCostsImpl("{W}{U}{B}{R}{G}")));
    // Trample
    this.addAbility(TrampleAbility.getInstance());
    // At the beginning of your upkeep,s you may put a 3/3 green Beast creature token onto the
    // battlefield.
    Ability ability =
        new BeginningOfUpkeepTriggeredAbility(
            Zone.BATTLEFIELD, new CreateTokenEffect(new BeastToken()), TargetController.YOU, true);
    this.addAbility(ability);
  }
示例#7
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));
  }
示例#8
0
  public ColossusOfSardia(UUID ownerId) {
    super(
        ownerId,
        358,
        "Colossus of Sardia",
        Rarity.RARE,
        new CardType[] {CardType.ARTIFACT, CardType.CREATURE},
        "{9}");
    this.expansionSetCode = "5ED";
    this.subtype.add("Golem");

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

    // Trample
    this.addAbility(TrampleAbility.getInstance());

    // Colossus of Sardia doesn't untap during your untap step.
    this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SkipUntapSourceEffect()));

    // {9}: Untap Colossus of Sardia. Activate this ability only during your upkeep.
    Ability ability =
        new SimpleActivatedAbility(
            Zone.BATTLEFIELD, new UntapSourceEffect(), new ManaCostsImpl("{9}"));
    ability.addCost(new OnlyDuringUpkeepCost());
    this.addAbility(ability);
  }
示例#9
0
  public MinaAndDennWildborn(UUID ownerId, CardSetInfo setInfo) {
    super(ownerId, setInfo, new CardType[] {CardType.CREATURE}, "{2}{R}{G}");
    this.supertype.add("Legendary");
    this.subtype.add("Elf");
    this.subtype.add("Ally");
    this.power = new MageInt(4);
    this.toughness = new MageInt(4);

    // You may play an additional land on each of your turns.
    this.addAbility(
        new SimpleStaticAbility(
            Zone.BATTLEFIELD,
            new PlayAdditionalLandsControllerEffect(1, Duration.WhileOnBattlefield)));

    // {R}{G}, Return a land you control to its owner's hand: Target creature gains trample until
    // end of turn.
    Ability ability =
        new SimpleActivatedAbility(
            Zone.BATTLEFIELD,
            new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn),
            new ManaCostsImpl("{R}{G}"));
    ability.addCost(
        new ReturnToHandChosenControlledPermanentCost(new TargetControlledPermanent(filter)));
    ability.addTarget(new TargetCreaturePermanent());
    this.addAbility(ability);
  }
示例#10
0
  public WorldspineWurm(UUID ownerId) {
    super(
        ownerId,
        140,
        "Worldspine Wurm",
        Rarity.MYTHIC,
        new CardType[] {CardType.CREATURE},
        "{8}{G}{G}{G}");
    this.expansionSetCode = "RTR";
    this.subtype.add("Wurm");

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

    // Trample
    this.addAbility(TrampleAbility.getInstance());

    // When Worldspine Wurm dies, put three 5/5 green Wurm creature tokens with trample onto the
    // battlefield.
    this.addAbility(new DiesTriggeredAbility(new CreateTokenEffect(new WorldspineWurmToken(), 3)));

    // When Worldspine Wurm is put into a graveyard from anywhere, shuffle it into its owner's
    // library.
    this.addAbility(
        new PutIntoGraveFromAnywhereSourceTriggeredAbility(new ShuffleIntoLibrarySourceEffect()));
  }
示例#11
0
  public BeastbreakerOfBalaGed(UUID ownerId, CardSetInfo setInfo) {
    super(ownerId, setInfo, new CardType[] {CardType.CREATURE}, "{1}{G}");
    this.subtype.add("Human");
    this.subtype.add("Warrior");

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

    // Level up {2}{G} ({2}{G}: Put a level counter on this. Level up only as a sorcery.)
    this.addAbility(new LevelUpAbility(new ManaCostsImpl("{2}{G}")));

    Abilities<Ability> levelAbilities = new AbilitiesImpl<Ability>();
    levelAbilities.add(TrampleAbility.getInstance());

    this.addAbilities(
        LevelerCardBuilder.construct(
            // LEVEL 1-3
            //      4/4
            new LevelerCardBuilder.LevelAbility(1, 3, new AbilitiesImpl<Ability>(), 4, 4),
            // LEVEL 1-3
            //      4/4
            //      Trample
            new LevelerCardBuilder.LevelAbility(4, -1, levelAbilities, 6, 6)));
    setMaxLevelCounters(4);
  }
示例#12
0
  public MolimoMaroSorcerer(UUID ownerId) {
    super(
        ownerId,
        280,
        "Molimo, Maro-Sorcerer",
        Rarity.RARE,
        new CardType[] {CardType.CREATURE},
        "{4}{G}{G}{G}");
    this.expansionSetCode = "10E";
    this.supertype.add("Legendary");
    this.subtype.add("Elemental");
    this.color.setGreen(true);
    this.power = new MageInt(0);
    this.toughness = new MageInt(0);

    // Trample
    this.addAbility(TrampleAbility.getInstance());
    // Molimo, Maro-Sorcerer's power and toughness are each equal to the number of lands you
    // control.
    this.addAbility(
        new SimpleStaticAbility(
            Zone.ALL,
            new SetPowerToughnessSourceEffect(
                new PermanentsOnBattlefieldCount(filter), Duration.EndOfGame)));
  }
示例#13
0
  public KessigDireSwine(UUID ownerId) {
    super(
        ownerId,
        214,
        "Kessig Dire Swine",
        Rarity.COMMON,
        new CardType[] {CardType.CREATURE},
        "{4}{G}{G}");
    this.expansionSetCode = "SOI";
    this.subtype.add("Boar");
    this.subtype.add("Horror");
    this.power = new MageInt(6);
    this.toughness = new MageInt(6);

    // <i>Delirium</i> &mdash; Kessig Dire Swine has trample as long as there are four or more card
    // types among cards in your graveyard.
    this.addAbility(
        new SimpleStaticAbility(
            Zone.BATTLEFIELD,
            new ConditionalContinuousEffect(
                new GainAbilitySourceEffect(
                    TrampleAbility.getInstance(), Duration.WhileOnBattlefield),
                new DeliriumCondition(),
                "<i>Delirium</i> &mdash; {this} has trample as long as there are four or more card types among cards in your graveyard")));
  }
示例#14
0
  public Splinterfright(UUID ownerId) {
    super(
        ownerId, 205, "Splinterfright", Rarity.RARE, new CardType[] {CardType.CREATURE}, "{2}{G}");
    this.expansionSetCode = "ISD";
    this.subtype.add("Elemental");

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

    this.addAbility(TrampleAbility.getInstance());
    // Splinterfright's power and toughness are each equal to the number of creature cards in your
    // graveyard.
    CardsInControllerGraveyardCount count =
        new CardsInControllerGraveyardCount(new FilterCreatureCard("creature cards"));
    this.addAbility(
        new SimpleStaticAbility(
            Zone.ALL, new SetPowerToughnessSourceEffect(count, Duration.EndOfGame)));
    // At the beginning of your upkeep, put the top two cards of your library into your graveyard.
    this.addAbility(
        new OnEventTriggeredAbility(
            EventType.UPKEEP_STEP_PRE,
            "beginning of your upkeep",
            new PutTopCardOfLibraryIntoGraveControllerEffect(2),
            false));
  }
示例#15
0
  public BackwoodsSurvivalists(UUID ownerId) {
    super(
        ownerId,
        150,
        "Backwoods Survivalists",
        Rarity.COMMON,
        new CardType[] {CardType.CREATURE},
        "{3}{G}");
    this.expansionSetCode = "EMN";
    this.subtype.add("Human");
    this.subtype.add("Warrior");
    this.power = new MageInt(4);
    this.toughness = new MageInt(3);

    // <i>Delirium</i> &mdash; Backwoods Survivalists gets +1/+1 and has trample as long as there
    // are four or more card types among cards in your graveyard.
    ConditionalContinuousEffect effect =
        new ConditionalContinuousEffect(
            new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield),
            DeliriumCondition.getInstance(),
            "<i>Delirium</i> &mdash; {this} gets +1/+1");
    Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, effect);
    ability.addEffect(
        new ConditionalContinuousEffect(
            new GainAbilitySourceEffect(TrampleAbility.getInstance()),
            DeliriumCondition.getInstance(),
            "and has trample as long as there are four or more card types among cards in your graveyard."));
    this.addAbility(ability);
  }
示例#16
0
  public ElderwoodScion(UUID ownerId) {
    super(
        ownerId,
        88,
        "Elderwood Scion",
        Rarity.RARE,
        new CardType[] {CardType.CREATURE},
        "{3}{G}{W}");
    this.expansionSetCode = "PC2";
    this.subtype.add("Elemental");

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

    // Trample
    this.addAbility(TrampleAbility.getInstance());
    // Lifelink
    this.addAbility(LifelinkAbility.getInstance());
    // Spells you cast that target Elderwood Scion cost {2} less to cast.
    this.addAbility(
        new SimpleStaticAbility(Zone.BATTLEFIELD, new ElderwoodScionCostReductionEffect()));
    // Spells your opponents cast that target Elderwood Scion cost {2} more to cast.
    this.addAbility(
        new SimpleStaticAbility(Zone.BATTLEFIELD, new ElderwoodScionCostReductionEffect2()));
  }
示例#17
0
  public HuntersProwess(UUID ownerId) {
    super(
        ownerId, 124, "Hunter's Prowess", Rarity.RARE, new CardType[] {CardType.SORCERY}, "{4}{G}");
    this.expansionSetCode = "BNG";

    this.color.setGreen(true);

    // Until end of turn, target creature gets +3/+3 and gains trample and "Whenever this creature
    // deals combat damage to a player, draw that many cards."
    Effect effect = new BoostTargetEffect(3, 3, Duration.EndOfTurn);
    effect.setText("Until end of turn, target creature gets +3/+3");
    this.getSpellAbility().addEffect(effect);
    effect = new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn);
    effect.setText("and gains trample");
    this.getSpellAbility().addEffect(effect);
    Ability grantedAbility =
        new DealsCombatDamageToAPlayerTriggeredAbility(new HuntersProwessDrawEffect(), false, true);
    this.getSpellAbility()
        .addEffect(
            new GainAbilityTargetEffect(
                grantedAbility,
                Duration.EndOfTurn,
                "and \"Whenever this creature deals combat damage to a player, draw that many cards.\""));
    this.getSpellAbility().addTarget(new TargetCreaturePermanent(true));
  }
示例#18
0
  public RootbreakerWurm(UUID ownerId, CardSetInfo setInfo) {
    super(ownerId, setInfo, new CardType[] {CardType.CREATURE}, "{5}{G}{G}");
    this.subtype.add("Wurm");

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

    this.addAbility(TrampleAbility.getInstance());
  }
示例#19
0
 public RhinoToken() {
   super("Rhino", "4/4 green Rhino creature token with trample");
   cardType.add(CardType.CREATURE);
   color.setGreen(true);
   subtype.add("Rhino");
   power = new MageInt(4);
   toughness = new MageInt(4);
   addAbility(TrampleAbility.getInstance());
 }
示例#20
0
 ApeToken() {
   super("Ape", "a 3/3 green Ape creature with trample");
   cardType.add(CardType.CREATURE);
   this.subtype.add("Ape");
   color.setGreen(true);
   power = new MageInt(3);
   toughness = new MageInt(3);
   this.addAbility(TrampleAbility.getInstance());
 }
示例#21
0
  public WorldspineWurmToken() {
    super("Wurm", "5/5 green Wurm creature tokens with trample");
    cardType.add(CardType.CREATURE);
    color.setGreen(true);
    subtype.add("Wurm");
    power = new MageInt(5);
    toughness = new MageInt(5);

    this.addAbility(TrampleAbility.getInstance());
  }
示例#22
0
  public BodyOfJukai(UUID ownerId, CardSetInfo setInfo) {
    super(ownerId, setInfo, new CardType[] {CardType.CREATURE}, "{7}{G}{G}");
    this.subtype.add("Spirit");

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

    this.addAbility(TrampleAbility.getInstance());
    this.addAbility(new SoulshiftAbility(8));
  }
示例#23
0
 public MalachiteGolem(UUID ownerId, CardSetInfo setInfo) {
   super(ownerId, setInfo, new CardType[] {CardType.ARTIFACT, CardType.CREATURE}, "{6}");
   this.subtype.add("Golem");
   this.power = new MageInt(5);
   this.toughness = new MageInt(3);
   this.addAbility(
       new SimpleActivatedAbility(
           Zone.BATTLEFIELD,
           new GainAbilitySourceEffect(TrampleAbility.getInstance(), Duration.EndOfTurn),
           new ManaCostsImpl("{1}{G}")));
 }
示例#24
0
文件: Enlarge.java 项目: poixen/mage
  public Enlarge(UUID ownerId) {
    super(ownerId, 170, "Enlarge", Rarity.UNCOMMON, new CardType[] {CardType.SORCERY}, "{3}{G}{G}");
    this.expansionSetCode = "M14";

    // Target creature gets +7/+7 and gains trample until end of turn. It must be blocked this turn
    // if able.
    this.getSpellAbility().addEffect(new BoostTargetEffect(7, 7, Duration.EndOfTurn));
    this.getSpellAbility()
        .addEffect(new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn));
    this.getSpellAbility().addEffect(new MustBeBlockedByAtLeastOneTargetEffect(Duration.EndOfTurn));
    this.getSpellAbility().addTarget(new TargetCreaturePermanent());
  }
示例#25
0
  VoiceOfTheWoodsElementalToken() {
    super("Elemental", "7/7 green Elemental creature token with trample");
    this.setOriginalExpansionSetCode("EVG");
    cardType.add(CardType.CREATURE);
    subtype.add("Elemental");

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

    addAbility(TrampleAbility.getInstance());
  }
示例#26
0
  public ShivanWumpus(UUID ownerId) {
    super(ownerId, 121, "Shivan Wumpus", Rarity.RARE, new CardType[] {CardType.CREATURE}, "{3}{R}");
    this.expansionSetCode = "PLC";
    this.subtype.add("Beast");
    this.power = new MageInt(6);
    this.toughness = new MageInt(6);

    // Trample
    this.addAbility(TrampleAbility.getInstance());

    // When Shivan Wumpus enters the battlefield, any player may sacrifice a land. If a player does,
    // put Shivan Wumpus on top of its owner's library.
    this.addAbility(new EntersBattlefieldTriggeredAbility(new ShivanWumpusEffect(), false));
  }
示例#27
0
  public AutochthonWurm(UUID ownerId, CardSetInfo setInfo) {
    super(ownerId, setInfo, new CardType[] {CardType.CREATURE}, "{10}{G}{G}{G}{W}{W}");
    this.subtype.add("Wurm");

    this.power = new MageInt(9);
    this.toughness = new MageInt(14);

    // Convoke (Each creature you tap while casting this spell reduces its cost by {1} or by one
    // mana of that creature's color.)
    this.addAbility(new ConvokeAbility());

    // Trample
    this.addAbility(TrampleAbility.getInstance());
  }
示例#28
0
  public Carnassid(UUID ownerId, CardSetInfo setInfo) {
    super(ownerId, setInfo, new CardType[] {CardType.CREATURE}, "{4}{G}{G}");
    this.subtype.add("Beast");

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

    // Trample
    this.addAbility(TrampleAbility.getInstance());
    // {1}{G}: Regenerate Carnassid.
    this.addAbility(
        new SimpleActivatedAbility(
            Zone.BATTLEFIELD, new RegenerateSourceEffect(), new ManaCostsImpl("{1}{G}")));
  }
示例#29
0
  public StomperCub(UUID ownerId) {
    super(
        ownerId,
        210,
        "Stomper Cub",
        Rarity.COMMON,
        new CardType[] {CardType.CREATURE},
        "{3}{G}{G}");
    this.expansionSetCode = "ROE";
    this.subtype.add("Beast");

    this.power = new MageInt(5);
    this.toughness = new MageInt(3);
    this.addAbility(TrampleAbility.getInstance());
  }
示例#30
0
  public RealitySmasher(UUID ownerId) {
    super(ownerId, 7, "Reality Smasher", Rarity.RARE, new CardType[] {CardType.CREATURE}, "{4}{C}");
    this.expansionSetCode = "OGW";
    this.subtype.add("Eldrazi");
    this.power = new MageInt(5);
    this.toughness = new MageInt(5);

    // Trample
    this.addAbility(TrampleAbility.getInstance());
    // Haste
    this.addAbility(HasteAbility.getInstance());
    // Whenever Reality Smasher becomes the target of a spell an opponent controls, counter that
    // spell unless its controller discards a card.
    this.addAbility(new RealitySmasherTriggeredAbility());
  }