@Override
  public void update(float delta) {
    if (!isGameOver) {
      List<TouchEvent> events = stateManager.getTouchHandler().getTouchEvents();
      if (!isExitDialogShowing) isExitDialogShowing = stateManager.isBackPressed();
      if (isExitDialogShowing) {
        events = yesButton.update(events);
        events = noButton.update(events);
        if (yesButton.state == Button.ACTIVATED) {
          yesButton.disarm();
          stateManager.setState(new MainMenuState(stateManager));
        }
        if (noButton.state == Button.ACTIVATED) {
          noButton.disarm();
          isExitDialogShowing = false;
        }
      } else {
        if (switchTurns) {

          if (map.getPlayer2() == map.getCurrentPlayersTurn()) events.clear();

          events = switchTurnsOKButton.update(events);
          events.clear();
          if (switchTurnsOKButton.state == Button.ACTIVATED) {
            switchTurnsOKButton.disarm();
            switchTurns = false;
            checkWin = true;
            map.doneSwitchingTurns();
          }
        }
        map.update(events);
      }
    } else {
      // TODO: maybe take us to a game breakdown state which records stats for the match
      // right now, just take us back to the main menu
      stateManager.setState(new MainMenuState(stateManager));
    }
  }