boolean filterApplies = filter == null || filter.match(game.getCard(source.getSourceId()), game);
return conditionApplies && filterApplies;
}
@Override
public boolean askToActivateAlternativeCosts(Ability ability, Game game) {
<BUG>if (ability != null && AbilityType.SPELL.equals(ability.getAbilityType())) {
</BUG>
if (filter != null) {
Card card = game.getCard(ability.getSourceId());
if (!filter.match(card, ability.getSourceId(), ability.getControllerId(), game)) {

boolean filterApplies = filter == null || filter.match(game.getCard(source.getSourceId()), game);
return conditionApplies && filterApplies;
}
@Override
public boolean askToActivateAlternativeCosts(Ability ability, Game game) {
if (ability != null && AbilityType.SPELL == ability.getAbilityType()) {
if (filter != null) {
Card card = game.getCard(ability.getSourceId());
if (!filter.match(card, ability.getSourceId(), ability.getControllerId(), game)) {
