@Override public DiscardSourceCost copy() { return new DiscardSourceCost(this); } }
public ChannelAbility(String manaString, Effect effect, TimingRule timing) { super(Zone.HAND, effect, new ManaCostsImpl(manaString)); this.addCost(new DiscardSourceCost()); this.timing = timing; }
public TransmuteAbility(String manaCost) { super(Zone.HAND, new TransmuteEffect(), new ManaCostsImpl(manaCost)); this.setTiming(TimingRule.SORCERY); this.addCost(new DiscardSourceCost()); }
public BloodrushAbility(String manaString, Effect effect) { super(Zone.HAND, effect, new ManaCostsImpl(manaString)); this.addCost(new DiscardSourceCost()); this.addTarget(new TargetAttackingCreature()); }
public ReinforceAbility(DynamicValue count, Cost cost) { super(Zone.HAND, new AddCountersTargetEffect(CounterType.P1P1.createInstance(0), count), cost); this.addCost(new DiscardSourceCost()); this.addTarget(new TargetCreaturePermanent()); this.cost = cost.copy(); this.count = count; }
public FaerieMacabre(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}{B}"); this.subtype.add(SubType.FAERIE); this.subtype.add(SubType.ROGUE); this.power = new MageInt(2); this.toughness = new MageInt(2); // Flying this.addAbility(FlyingAbility.getInstance()); // Discard Faerie Macabre: Exile up to two target cards from graveyards. Ability ability = new SimpleActivatedAbility(Zone.HAND, new ExileTargetEffect(), new DiscardSourceCost()); ability.addTarget(new TargetCardInGraveyard(0, 2, new FilterCard("cards from graveyards"))); this.addAbility(ability); }