@Override public boolean apply(Game game, Ability source) { UUID exileId = CardUtil.getCardExileZoneId(game, source); for (UUID opponentId : game.getOpponents(source.getControllerId())) { Player opponent = game.getPlayer(opponentId); if (opponent != null) { Cards cards = new CardsImpl(); cards.addAll(opponent.getHand()); for (UUID cardId : cards) { Card card = game.getCard(cardId); if (card != null) { card.moveToExile(exileId, "Ashiok, Nightmare Weaver", source.getSourceId(), game); } } cards.clear(); cards.addAll(opponent.getGraveyard()); for (UUID cardId : cards) { Card card = game.getCard(cardId); if (card != null) { card.moveToExile(exileId, "Ashiok, Nightmare Weaver", source.getSourceId(), game); } } } } return true; }