@Override public DestroyAllNamedPermanentsEffect copy() { return new DestroyAllNamedPermanentsEffect(this); }
@Override public boolean apply(Game game, Ability source) { Permanent targetPermanent = game.getPermanent(getTargetPointer().getFirst(game, source)); if (targetPermanent == null) { return false; } FilterPermanent filter = new FilterPermanent(); if (CardUtil.haveEmptyName(targetPermanent)) { filter.add(new PermanentIdPredicate(targetPermanent.getId())); // if no name (face down creature) only the creature itself is selected } else { filter.add(new NamePredicate(targetPermanent.getName())); } for (Permanent perm : game.getBattlefield().getActivePermanents(filter, source.getControllerId(), game)) { perm.destroy(source.getSourceId(), game, false); } return true; }
public MaelstromPulse(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{B}{G}"); // Destroy target nonland permanent and all other permanents with the same name as that permanent. this.getSpellAbility().addTarget(new TargetNonlandPermanent()); this.getSpellAbility().addEffect(new DestroyAllNamedPermanentsEffect()); }
public WakeOfDestruction(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{R}{R}{R}"); // Destroy target land and all other lands with the same name as that land. this.getSpellAbility().addTarget(new TargetLandPermanent()); this.getSpellAbility().addEffect(new DestroyAllNamedPermanentsEffect()); }