@Override
public boolean apply(Game game, Ability source) {
Player player = game.getPlayer(source.getControllerId());
DynamicValue value = new CardsInControllerGraveyardCount();
if (player != null) {
player.gainLife(value.calculate(game, source, this) * 2, game);
player.getLibrary().addAll(player.getGraveyard().getCards(game), game);
player.getGraveyard().clear();
player.shuffleLibrary(game);
return true;
}