Example #1
0
    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();
        }
    }
Example #2
0
    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;
        }
    }