IEnumerator DoQuestion(Action act) { bool isDone = false; bool isAnswerCorrect = false; ModalLoLQuestion.ResultCallback callback = delegate(bool isCorrect) { isAnswerCorrect = isCorrect; isDone = true; }; mParmsDialog[ModalLoLQuestion.parmResultCallback] = callback; M8.UIModal.Manager.instance.ModalOpen(act.id, mParmsDialog); while (!isDone) { yield return(null); } mParmsDialog[ModalLoLQuestion.parmResultCallback] = null; if (isAnswerCorrect) { Debug.Log("question answer correct"); } switch (act.type) { case ActionType.QuestionBonusDuration: case ActionType.QuestionBonusUpgradeMucus: case ActionType.QuestionBonusEnemyWipe: break; } //fail-safe if we needed more questions if (LoLManager.instance.isQuestionsAllAnswered) { LoLManager.instance.ResetCurrentQuestionIndex(); } }
IEnumerator DoActive() { var parms = new M8.GenericParams(); //upgrade dialog UpgradeType upgrade = UpgradeType.None; ModalUpgrade.UpgradeChosenCallback cb = delegate(UpgradeType toUpgrade) { upgrade = toUpgrade; }; parms[ModalUpgrade.parmCallback] = cb; M8.UIModal.Manager.instance.ModalOpen(modalUpgrade, parms); while (upgrade == UpgradeType.None) { yield return(null); } parms.Clear(); // //dialog to say there's a quiz bool isDlgClosed = false; System.Action dialogCb = delegate() { isDlgClosed = true; }; parms[ModalDialog.parmStringRefs] = new string[] { dialogPreQuiz }; parms[ModalDialogBase.parmPauseOverride] = true; parms[ModalDialogBase.parmActionFinish] = dialogCb; M8.UIModal.Manager.instance.ModalOpen(modalDialog, parms); while (!isDlgClosed) { yield return(null); } parms.Clear(); // //quiz time isDlgClosed = false; bool isAnsweredCorrectly = false; ModalLoLQuestion.ResultCallback quizResultCb = delegate(bool correct) { isDlgClosed = true; isAnsweredCorrectly = correct; }; parms[ModalLoLQuestion.parmResultCallback] = quizResultCb; M8.UIModal.Manager.instance.ModalOpen(modalQuiz, parms); while (!isDlgClosed) { yield return(null); } parms.Clear(); //fail-safe if we needed more questions if (LoLManager.instance.isQuestionsAllAnswered) { LoLManager.instance.ResetCurrentQuestionIndex(); } // //upgrade? if (isAnsweredCorrectly) { MissionController.instance.Upgrade(upgrade); mRout = null; state = (int)EntityState.Alert; } else { //wrong :( isDlgClosed = false; parms[ModalDialog.parmStringRefs] = new string[] { dialogPostQuizFail }; parms[ModalDialogBase.parmPauseOverride] = true; parms[ModalDialogBase.parmActionFinish] = dialogCb; M8.UIModal.Manager.instance.ModalOpen(modalDialog, parms); while (!isDlgClosed) { yield return(null); } parms.Clear(); // mRout = null; state = (int)EntityState.Sleep; } }