Exemplo n.º 1
0
        public void SetIsManusPlaying(bool state)
        {
            if (state == isPlaying)
            {
                return;
            }

            isPlaying = state;
            UISingleton.instance.uiCanvasGroup.blocksRaycasts = !state;
            skipManusBubble.gameObject.SetActive(state);
            PMWrapper.speedMultiplier = 0.5f;

            if (state)
            {
                UISingleton.instance.textField.deActivateField();
                IDELineMarker.instance.SetState(IDELineMarker.State.Hidden);
                currentManus = Loader.allManuses[PMWrapper.currentLevel].Copy();
                currentManus.NextStep();
            }
            else
            {
                if (currentManus != null)
                {
                    currentManus.FastForwardAllSteps();
                    currentManus = null;
                }

                UISingleton.instance.textField.reActivateField();
                UISingleton.instance.manusBubble.HideMessage();

                PMWrapper.SetLevelCompleted();
                IDELineMarker.SetIDEPosition(PMWrapper.preCode == string.Empty ? 1 : (PMWrapper.preCode.Split('\n').Length + 1));
            }
        }
Exemplo n.º 2
0
        private IEnumerator ShowFeedbackAndRunNextCase()
        {
            string positiveMassage;

            if (numberOfCases == 1)
            {
                positiveMassage = "Bra jobbat!";
            }
            else
            {
                positiveMassage = "Test " + (CurrentCase + 1) + " avklarat!";
            }

            UISingleton.instance.taskDescription.ShowPositiveMessage(positiveMassage);

            yield return(new WaitForSeconds(3 * (1 - PMWrapper.speedMultiplier)));

            UISingleton.instance.answerBubble.HideMessage();
            UISingleton.instance.taskDescription.HideTaskFeedback();
            LevelModeButtons.Instance.SetCurrentCaseButtonState(LevelModeButtonState.Completed);

            CurrentCase++;

            if (CurrentCase >= numberOfCases)
            {
                IsCasesRunning    = false;
                AllCasesCompleted = true;
                PMWrapper.SetLevelCompleted();
                yield break;
            }

            SetCurrentCase(CurrentCase);
            RunCase(CurrentCase);
        }
        private IEnumerator ShowFeedbackAndRunNextCase()
        {
            UISingleton.instance.taskDescription.ShowPositiveMessage("Test " + (CurrentCase + 1) + " avklarat!");

            yield return(new WaitForSeconds(3 * (1 - PMWrapper.speedMultiplier)));

            UISingleton.instance.answerBubble.HideMessage();
            UISingleton.instance.taskDescription.HideTaskFeedback();
            CaseButtons[CurrentCase].GetComponent <CaseButton>().SetButtonCompleted();

            CurrentCase++;

            if (CurrentCase >= numberOfCases)
            {
                AllCasesCompleted = true;
                PMWrapper.SetLevelCompleted();
                yield break;
            }

            SetCurrentCase(CurrentCase);
            RunCase(CurrentCase);
        }
Exemplo n.º 4
0
        public void OnPMCompilerStopped(StopStatus status)
        {
            if (status == StopStatus.Finished)
            {
                if (levelMode == LevelMode.Sandbox && Main.instance.levelDefinition.cases != null &&
                    Main.instance.levelDefinition.cases.Count > 0)
                {
                    correctProgramPanel.SetActive(true);
                }
                else if (levelMode == LevelMode.Case)
                {
                    foreach (IPMTimeToCorrectCase ev in UISingleton.FindInterfaces <IPMTimeToCorrectCase>())
                    {
                        ev.OnPMTimeToCorrectCase();
                    }
                }
                else
                {
                    PMWrapper.SetLevelCompleted();
                }
            }

            if (status == StopStatus.RuntimeError)
            {
                if (levelMode == LevelMode.Case)
                {
                    Main.instance.caseHandler.CaseFailed();
                }
            }

            if (status == StopStatus.UserForced)
            {
                if (levelMode == LevelMode.Case)
                {
                    Main.instance.caseHandler.isCasesRunning = false;
                }
            }
        }