@Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); Player targetOpponent = game.getPlayer(getTargetPointer().getFirst(game, source)); if (controller != null && targetOpponent != null) { int amount = new AttackingFilterCreatureCount(filter).calculate(game, source, this); if (amount > 0) { targetOpponent.loseLife(amount, game, false); controller.gainLife(amount, game, source); } return true; } return false; } }