public int FillTheQuestionSelectContent(int levelNumber) { m_questionManager.SetQuiz(levelNumber); m_numberOfLevelsInGroup = m_questionManager.GetNumberOfQuestions(); Debug.Log("m_numberOfLevelsInGroup = " + m_numberOfLevelsInGroup); bool active = true; int activeCount = m_numberOfLevelsInGroup; List <LevelSelectButtonData> levelData = new List <LevelSelectButtonData>(); for (int j = 0; j < m_numberOfLevelsInGroup; j++) { Debug.Log("question number " + j); Question q = m_questionManager.GetQuestion(j); int score = m_playerProgress.QuestionScore(levelNumber, j); LevelSelectButtonData datum = new LevelSelectButtonData(j, PressedQuestionButton, false, q.pictureFileName, active); datum.SetCompletion(score, 1); if (MUST_COMPLETE_QUESTIONS_WITHIN_QUIZ_IN_SEQUENCE && (score == 0) && active) { activeCount = j + 1; active = false; } levelData.Add(datum); } m_levelSelectContent.Init(levelData); m_levelSelectContent.SetContentAlpha(0.3f, activeCount); return(activeCount); }
void FillWithGroupsAndQuizzes() { ClearExistingGroups(); List <string> groupNames = GetGroupNames(); int groupCount = 0; bool allGroupsClearSoFar = true; foreach (string groupName in groupNames) { // create a group for the UI GameObject group = Instantiate(m_levelGroupPrefab, transform); LevelSelectContent levelSelectContent = group.GetComponent <LevelSelectContent>(); List <LevelSelectButtonData> levelData = new List <LevelSelectButtonData>(); levelSelectContent.SetHeaderText(groupName); // group 0 is always active. Others are active if all previous groups have been cleared. bool groupIsActive = allGroupsClearSoFar; allGroupsClearSoFar = allGroupsClearSoFar && GroupIsClear(groupName); bool quizIsActive = true; int numberOfSelectableQuizzes = 0; int quizCount = 0; for (int i = 0; i < m_numberOfQuizzes; i++) { m_questionManager.SetQuiz(i); if (string.Compare(m_questionManager.GetGroupName(), groupName) == 0) { LevelSelectButtonData datum = new LevelSelectButtonData(i, PressedLevelButton, true, m_questionManager.GetQuizName(), groupIsActive && (quizIsActive || !MUST_COMPLETE_QUIZZES_IN_SEQUENCE)); int score = m_playerProgress.QuizScore(i); int maxScore = m_playerProgress.QuizNumQuestions(i); datum.SetCompletion(score, m_questionManager.GetNumberOfQuestions()); quizCount++; if (MUST_COMPLETE_QUIZZES_IN_SEQUENCE && (score < maxScore) && quizIsActive) { // found the first non-active quiz. All quizzes up to and including this one are selectable, others are not. numberOfSelectableQuizzes = quizCount; quizIsActive = false; } levelData.Add(datum); } } if (numberOfSelectableQuizzes == 0) { // didn't find a non-active quiz. They are all selectable. numberOfSelectableQuizzes = quizCount; } levelSelectContent.Init(levelData); Debug.Log("groupIsActive " + groupIsActive + ", activeQuizCount " + numberOfSelectableQuizzes); if (!groupIsActive) { numberOfSelectableQuizzes = 0; } levelSelectContent.SetContentAlpha(0.3f, numberOfSelectableQuizzes); groupCount++; } }