if (withDamage) {
addCost(new PayLifeCost(1));
}
addCost(new SacrificeSourceCost());
FilterCard filter = new FilterCard(subTypeNames(subtypes));
filter.add(new CardTypePredicate(CardType.LAND));
ArrayList<Predicate<MageObject>> subtypePredicates = new ArrayList<>();
for (String subtype : subtypes) {
subtypePredicates.add(new SubtypePredicate(subtype));
}
filter.add(Predicates.or(subtypePredicates));