@Override
    public void mouseClicked(final MouseEvent e) {
        for (Map.Entry<Button.TYPE, Button> entry : buttons.entrySet()) {
            if (entry.getValue().contains(e.getPoint())) {
                processMouseClick(entry.getKey());
            }
        }

        if (discardPlayer != null) {
            Card best = null;

            for (Map.Entry<Rectangle, Card> entry : cardPositions.entrySet()) {
                if (entry.getKey().contains(e.getPoint())) {
                    best = entry.getValue();
                }
            }

            if (best != null && discardPlayer.getPlayer().getCards().contains(best)) {
                if (discards.contains(best)) {
                    discards.remove(best);
                } else {
                    discards.add(best);
                }

                repaint();
            }
        }
    }