@Override
public boolean apply(Game game, Ability source) {
Player player = game.getPlayer(source.getControllerId());
if (player != null) {
player.drawCards(3, game);
TargetDiscard target = new TargetDiscard(player.getId());
if (target.canChoose(source.getSourceId(), player.getId(), game)) {
player.choose(Outcome.Discard, target, source.getSourceId(), game);
Card card = player.getHand().get(target.getFirstTarget(), game);
if (card != null) {
player.discard(card, source, game);
int damage = card.getManaCost().convertedManaCost();
Permanent creature = game.getPermanent(this.getTargetPointer().getFirst(game, source));
if (creature != null) {