@Override
    public void mouseClicked(MouseEvent e) {
        Point mouseGridPosition = board.getPosOnGrid(new Point(e.getPoint()));


        for (Enemy currentEnemy : board.getAllEnemiesInCurrentWave()) {
            if( currentEnemy.isWithinObject(new Point(e.getPoint())) && currentEnemy.isAlive()) {
                graphicalInformationViewer.currentObject(currentEnemy);
                graphicalViewer.higlight(currentEnemy);
                return;
            }
        }

        // this part handels where to build towers
        for (Tower currentTower : board.getAllTowers()) {
            if (currentTower.getPosition().getX() == mouseGridPosition.getX() &&
                    currentTower.getPosition().getY() == mouseGridPosition.getY() ) {
                graphicalInformationViewer.currentObject(currentTower);
                graphicalViewer.higlight(currentTower);
                lastClickedPosition = mouseGridPosition;
                return;
            }

        }
        graphicalViewer.higlightPoint(mouseGridPosition);
        lastClickedPosition = mouseGridPosition;
    }