@Override public boolean apply(Game game, Ability source) { Spell targetSpell = game.getStack().getSpell(source.getFirstTarget()); if(targetSpell != null && KickedCondition.instance.apply(game, targetSpell.getSpellAbility())) { return super.apply(game, source); } return false; }
@Override public boolean apply(Game game, Ability source) { Player player = game.getPlayer(game.getControllerId(source.getFirstTarget())); if (player == null) { return false; } player.moveCards(player.getLibrary().getTopCards(game, 3), Zone.GRAVEYARD, source, game); return new CounterTargetEffect().apply(game, source); } }
@Override public boolean apply(Game game, Ability source) { Spell targetSpell = game.getStack().getSpell(getTargetPointer().getFirst(game, source)); if (targetSpell != null) { int spellCMC = targetSpell.getConvertedManaCost(); super.apply(game, source); new AddCountersSourceEffect(CounterType.P1P1.createInstance(spellCMC)).apply(game, source); return true; } return false; } }
@Override public boolean apply(Game game, Ability source) { StackObject stackObject = game.getStack().getStackObject(source.getFirstTarget()); if (stackObject == null) { return false; } ObjectColor creatureColors = new ObjectColor(); for (Permanent creature : game.getBattlefield().getActivePermanents(StaticFilters.FILTER_CONTROLLED_CREATURES, source.getControllerId(), game)) { creatureColors = creatureColors.union(creature.getColor(game)); if (!creatureColors.intersection(stackObject.getColor(game)).isColorless()) { return new CounterTargetEffect().apply(game, source); } } return false; } }