@Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { ExileZone exileZone = game.getExile().getExileZone(CardUtil.getExileZoneId(game, source.getSourceId(), 0)); if (exileZone != null) { Effect effect = new ReturnFromExileEffect(exileZone.getId(), Zone.HAND); AtTheBeginOfNextEndStepDelayedTriggeredAbility ability = new AtTheBeginOfNextEndStepDelayedTriggeredAbility(effect); ability.addEffect(new DrawCardSourceControllerEffect(1)); game.addDelayedTriggeredAbility(ability, source); return true; } } return false; } }