private void OpenModal()
        {
            switch (Type)
            {
            case ModalType.CAPTURE_STACK:
                SetTitle("Capture Or Stack");
                SetQuestion("Capture piece or stack on top of it?");
                modalViewService.DeactivateButton(Button1);
                modalViewService.SetupButton(Button2, questionAnswer, ModalQuestionAnswer.CAPTURE);
                modalViewService.SetupButton(Button3, questionAnswer, ModalQuestionAnswer.STACK);
                break;

            case ModalType.CONFIRM:
                SetTitle("Forced Recovery");
                SetQuestion("Perform Forced Recovery?");
                modalViewService.DeactivateButton(Button1);
                modalViewService.SetupButton(Button2, confirm, "Yes", true);
                modalViewService.SetupButton(Button3, confirm, "No", false);
                break;

            case ModalType.FRONT_BACK:
                SetTitle("Drop");
                SetQuestion("Drop front or back side?");
                modalViewService.DeactivateButton(Button1);
                modalViewService.SetupButton(Button2, dropFrontBack, dropFrontBack.Front.ToString(), PieceSide.FRONT);
                modalViewService.SetupButton(Button3, dropFrontBack, dropFrontBack.Back.ToString(), PieceSide.BACK);
                break;

            case ModalType.SUBSTITUTION_CLICK:
                SetTitle("Substitution or Click");
                SetQuestion("Substitution ability or click highlight?");
                modalViewService.DeactivateButton(Button1);
                modalViewService.SetupButton(Button2, questionAnswer, ModalQuestionAnswer.SUBSTITUTION);
                modalViewService.SetupButton(Button3, questionAnswer, ModalQuestionAnswer.CLICK);
                break;

            case ModalType.TIER_1_3_EXCHANGE_CLICK:
                SetTitle("1-3 Tier Exchange or Click");
                SetQuestion("1-3 Tier Exchange ability or click highlight?");
                modalViewService.DeactivateButton(Button1);
                modalViewService.SetupButton(Button2, questionAnswer, ModalQuestionAnswer.TIER_1_3_EXCHANGE);
                modalViewService.SetupButton(Button3, questionAnswer, ModalQuestionAnswer.CLICK);
                break;

            case ModalType.CLICK_IMMOBILE_CAPTURE:
                SetTitle("Click or Immobile Capture");
                SetQuestion("Click highlight or immobile capture?");
                modalViewService.DeactivateButton(Button1);
                modalViewService.SetupButton(Button2, questionAnswer, ModalQuestionAnswer.CLICK);
                modalViewService.SetupButton(Button3, questionAnswer, ModalQuestionAnswer.IMMOBILE_CAPTURE);
                break;

            case ModalType.CHECKMATE:
                SetTitle("Game Over");
                SetQuestion("Winner: " + victoriousPlayer.PlayerColor.ToString());
                modalViewService.DeactivateButton(Button1);
                modalViewService.SetupReloadSceneButton(Button2);
                modalViewService.SetupLoadTitleSceneButton(Button3);
                break;

            default:
                throw new InvalidOperationException("Unsupported ModalType");
            }

            ActivateModal();
            previous2ndModalType    = previousModalType;
            previousModalType       = Type;
            isModalOpen.IsModalOpen = true;
        }