package magic.model.target;
import magic.model.MagicCard;
import magic.model.MagicPlayer;
import magic.model.MagicSource;
public class MagicCMCCardFilter extends MagicCardFilterImpl {
private final MagicTargetFilter<MagicCard> targetFilter;
private final Operator operator;
private final int cmc;
public MagicCMCCardFilter(final MagicTargetFilter<MagicCard> targetFilter,final Operator operator,final int cmc) {
this.targetFilter = targetFilter;
this.operator = operator;
this.cmc = cmc;
}
@Override
public boolean accept(final MagicSource source,final MagicPlayer player,final MagicCard target) {
return targetFilter.accept(source,player,target) &&
operator.cmp(target.getCardDefinition().getConvertedCost(), cmc) ;
}
@Override
public boolean acceptType(final MagicTargetType targetType) {
return targetFilter.acceptType(targetType);
}
}