@Override public boolean apply(Game game, Ability source) { Map<UUID, Integer> playerCrtCount = new HashMap<>(); for (Iterator<Permanent> it = game.getBattlefield().getActivePermanents(source.getControllerId(), game).iterator(); it.hasNext();) { Permanent perm = it.next(); if (perm != null && perm.isCreature() && perm.getColor(game).isWhite() && perm.moveToExile(null, null, source.getSourceId(), game)) { playerCrtCount.putIfAbsent(perm.getControllerId(), 0); playerCrtCount.compute(perm.getControllerId(), (p, amount) -> amount + 1); } } for (UUID playerId : game.getPlayerList().toList()) { Player player = game.getPlayer(playerId); if (player != null) { player.drawCards(playerCrtCount.getOrDefault(playerId, 0), game); } } return true; } }