@Override
    public void doAction()
    {
        if (isRunning)
            return;

        isRunning = true;

        RoundManager roundManager = RoundManager.getInstance();
        ScoreManager scoreManager = ScoreManager.getInstance();
        MessageDialog messageDialog = MessageDialog.getInstance();
        NamesManager namesManager = NamesManager.getInstance();

        int nextRound = roundManager.getRound() + 1;
        int maxRound = roundManager.getMaxRound();

        if (maxRound > 0 && nextRound > maxRound)
        {
            if (scoreManager.getLeftScore() > scoreManager.getRightScore())
                messageDialog.show(namesManager.getLeftName() + " выиграл!");
            else if (scoreManager.getLeftScore() < scoreManager.getRightScore())
                messageDialog.show(namesManager.getRightName() + " выиграл!");
            else
                messageDialog.show("Ничья!");

            ScoreManagerSingleton.getInstance().newGame();
        }
        else
        {
            roundManager.setRound(nextRound);
        }

        SoundManager.getInstance().resetSounds();
        Timer.getInstance().restart();

        super.doAction();
    }