Пример #1
0
 public void SaveQuestion()
 {
     currentObj = EventSystem.current.currentSelectedGameObject.GetComponentInParent <AudioSource>().gameObject;
     if (currentObj.GetComponent <PanelModel>().ImportDone)
     {
         int QuestionNumber                 = currentObj.GetComponentInParent <PanelModel>().PanelNumber;
         TMP_InputField[]  answersInput     = EventSystem.current.currentSelectedGameObject.transform.Find("QField").Find("AnswerField").GetComponentsInChildren <TMP_InputField>();//get the answers
         Toggle[]          answersIsCorrect = new Toggle[answersInput.Length];
         List <AnswerData> answers          = new List <AnswerData>();
         for (int i = 0; i < answersInput.Length; i++)
         {
             answersIsCorrect[i] = answersInput[i].GetComponentInChildren <Toggle>(); //get the correct statement of an answer
             answers.Add(new AnswerData(answersInput[i].text, answersIsCorrect[i].isOn));
         }
         MusicQuestion question = new MusicQuestion(currentObj.GetComponentInParent <PanelModel>().Filepath, answers.ToArray()); //create a new MusicQuestion
         question.Fade       = EventSystem.current.currentSelectedGameObject.transform.Find("FadeIn").GetComponentInChildren <Toggle>().isOn;
         question.StartTrack = currentObj.GetComponentInParent <PanelModel>().StartTime;
         question.Volume     = currentObj.GetComponentInParent <PanelModel>().Volume;
         DataModel.Rounds[DataModel.IroundCur].Topics[DataModel.ItopicCur].Questions[QuestionNumber - 1] = question;//add the question in the current topic in DataModel
     }
     else
     {
         StartCoroutine(ChangeColor());
     }
 }
Пример #2
0
    /**
     * Create a new question in the DataModel and fill it with default value
     **/
    public void NewQuestionPanelData()
    {
        nbQ++;
        btPrefab = Instantiate(Resources.Load <RectTransform>("Prefabs/BTSample"), GameObject.Find("BTGrid").transform);
        // set the new panel attributes to default values
        btPrefab.name = "BTSample" + nbQ;
        btPrefab.GetComponent <PanelModel>().PanelNumber = nbQ;
        btPrefab.GetComponent <PanelModel>().Volume      = 1f;
        btPrefab.GetComponent <PanelModel>().StartTime   = 0f;
        btPrefab.GetComponent <PanelModel>().ImportDone  = false;
        // updating interface (language, events while clicking on button)
        btPrefab.Find("Delete").GetComponent <Button>().onClick.AddListener(() => RemoveQuestion());
        btPrefab.Find("Delete").GetComponentInChildren <TextMeshProUGUI>().text = DataModel.TextToUse["menu_remove"];
        btPrefab.Find("ValidateQuestion").GetComponent <Button>().onClick.AddListener(() => SaveQuestion());
        btPrefab.Find("ValidateQuestion").Find("Validate").GetComponent <TextMeshProUGUI>().text = DataModel.TextToUse["menu_validate"];
        btPrefab.Find("Play").GetComponent <Button>().onClick.AddListener(() => Play());
        btPrefab.Find("Stop").GetComponent <Button>().onClick.AddListener(() => Stop());
        btPrefab.Find("Pause").GetComponent <Button>().onClick.AddListener(() => Pause());
        btPrefab.Find("ValidateQuestion").Find("ImportButton").GetComponent <Button>().onClick.AddListener(() => OpenMusicFileBrowser());
        btPrefab.Find("ValidateQuestion").Find("ImportButton").GetComponentInChildren <TextMeshProUGUI>().text   = DataModel.TextToUse["import_music"];
        btPrefab.Find("ValidateQuestion").Find("FadeIn").GetComponentInChildren <TextMeshProUGUI>().text         = DataModel.TextToUse["music_fadein"];
        btPrefab.Find("ValidateQuestion").Find("TimeController").GetComponentInChildren <TextMeshProUGUI>().text = DataModel.TextToUse["music_starttime"];
        btPrefab.Find("ValidateQuestion").Find("VolumeController").GetComponent <Slider>().onValueChanged.AddListener((x) => ChangeVolume(x));
        btPrefab.Find("ValidateQuestion").Find("TimeController").GetComponent <Slider>().onValueChanged.AddListener((x) => ChangeTime(x));
        for (int i = 1; i < 5; i++)
        {
            btPrefab.Find("ValidateQuestion").Find("QField").Find("AnswerField").Find("A" + i + "Field").Find("Text Area").GetComponentInChildren <TextMeshProUGUI>().text = DataModel.TextToUse["enter_answertext"];
            btPrefab.Find("ValidateQuestion").Find("QField").Find("AnswerField").Find("A" + i + "Field").Find("TrueA" + i).GetComponentInChildren <TextMeshProUGUI>().text = DataModel.TextToUse["correct_answer"];
        }
        //add a neutral question when user press the AddQuestion button and add it to the DataModel
        AnswerData[]  ans      = { new AnswerData("a", false), new AnswerData("b", false), new AnswerData("c", false), new AnswerData("d", false) };
        MusicQuestion question = new MusicQuestion("new question", ans);

        DataModel.Rounds[DataModel.IroundCur].Topics[DataModel.ItopicCur].Questions.Add(question);
    }
Пример #3
0
    public bool GeneralSave()
    {
        bool allpassed = true;

        PanelModel[] questions = gameObject.GetComponentsInChildren <PanelModel>();
        foreach (PanelModel qi in questions)
        {
            if (qi.ImportDone)
            {
                int QuestionNumber = qi.PanelNumber;

                TMP_InputField[]  answersInput     = qi.transform.Find("ValidateQuestion").Find("QField").Find("AnswerField").GetComponentsInChildren <TMP_InputField>(); //get the answers
                Toggle[]          answersIsCorrect = new Toggle[answersInput.Length];
                List <AnswerData> answers          = new List <AnswerData>();

                for (int i = 0; i < answersInput.Length; i++)
                {
                    answersIsCorrect[i] = answersInput[i].GetComponentInChildren <Toggle>(); //get the correct statement of an answer
                    answers.Add(new AnswerData(answersInput[i].text, answersIsCorrect[i].isOn));
                }
                MusicQuestion question = new MusicQuestion(qi.Filepath, answers.ToArray()); //create a new MusicQuestion
                question.MusicPath  = qi.Filepath;
                question.Fade       = qi.transform.Find("ValidateQuestion").Find("FadeIn").GetComponent <Toggle>().isOn;
                question.StartTrack = qi.StartTime;
                question.Volume     = qi.Volume;
                DataModel.Rounds[DataModel.IroundCur].Topics[DataModel.ItopicCur].Questions[QuestionNumber - 1] = question;//add the question in the current topic in DataModel
            }
            else
            {
                allpassed  = false;
                currentObj = qi.gameObject;
                StartCoroutine(ChangeColor());
                break;
            }
        }

        if (allpassed)
        {
            DataModel.Save(DataModel.CurrentFilename);
        }
        return(allpassed);
    }
Пример #4
0
    void Update()
    {
        if (EveryoneAnswered() && Time.timeScale == 1f)
        {
            Time.timeScale = 2f;
        }

        if (isBuzzActivate && buzz_event && !teamsCtrl[number_team_buzz - 1].buzzed)
        {
            DisableTeam();

            if (!pauseActivated)
            {
                DisapearAllTeamsButOne(number_team_buzz);
                Pause();
                LaunchSoundBuzzer(number_team_buzz);
            }
            if (Input.GetKeyDown(KeyCode.Y))
            {
                Pause();
                CancelInvoke();
                sfx_buzzer_win.Play();
                buzz_answer_confirm = true;
                DataModel.Scores[number_team_buzz - 1] += 5;
                if (DataModel.Jokers[number_team_buzz - 1])
                {
                    DataModel.Scores[number_team_buzz - 1] += 2;
                }
                buzz_event      = false;
                isNextAvailable = true;
                ReappearAllTeams();
                arrow.GetComponent <CanvasGroup>().alpha = 1;
                GameObject.Find("ArrowButton").GetComponent <Button>().interactable = true;
                UpdateScoreTeams(number_team_buzz);
                DisplayGoodAnswer();
                musicSource.Stop();
            }
            else if (Input.GetKeyDown(KeyCode.N))
            {
                sfx_buzzer_defeat.Play();
                StartCoroutine(WaitForRealSeconds(1.57f));
                ReappearAllTeams();
                teamsCtrl[number_team_buzz - 1].gameObject.GetComponent <CanvasGroup>().alpha = 0.5f;
                buzz_answer_confirm = true;
                teamsCtrl[number_team_buzz - 1].SetHasAnswered(true);
                teamsCtrl[number_team_buzz - 1].buzzed = true;
                buzz_event = false;
                EnableTeam();
            }
        }
        else
        {
            // Pause/Resume the game
            if (Input.GetKeyUp(DataModel.Pause))
            {
                Pause();
            }

            //go to next question
            if (Input.GetKeyDown(DataModel.Next))
            {
                GoToNextQuestion();
            }

            if (musicQuestionIsPlaying)
            {
                // Make the sound fade in
                MusicQuestion musicQ = (MusicQuestion)DataModel.CurQuestion();
                if (!resetvol && musicQ.Fade)
                {
                    musicSource.volume = 0;
                    resetvol           = true;
                }

                if (musicQ.Fade && musicQuestionIsPlaying)
                {
                    if (musicSource.volume < musicQ.Volume)
                    {
                        musicSource.volume = musicSource.volume + (Time.deltaTime / 8);
                    }
                }

                if (timerctrl.GetCurrentTimeValue() < 2f)
                {
                    if (musicSource.volume > 0)
                    {
                        musicSource.volume -= musicQ.Volume * Time.deltaTime / 2f;
                    }
                }
            }
        }
    }
Пример #5
0
    private void RunningQuestions()
    {
        goingToNextQuestion = false;

        if (isBuzzActivate)
        {
            buzz_event = false;
            EnableTeam();
            EnableAllBuzzers();
            ReappearAllTeams();
            ResetTeamsAnswered();
        }
        else
        {
            buzz_event = false;
            EnableTeam();
            ReappearAllTeams();
            ResetTeamsAnswered();
            DisableAllBuzzers();
        }

        // Make required objects to disappear at the start of question
        GameObject.Find("ArrowButton").GetComponent <Button>().interactable = false;

        arrow.GetComponent <CanvasGroup>().alpha = 0;
        foreach (GameObject e in timerPanelList)
        {
            e.GetComponent <CanvasGroup>().alpha = 0;
        }
        foreach (GameObject p in answerList)
        {
            p.GetComponent <CanvasGroup>().alpha = 0;
        }

        isNextAvailable = false;

        GameObject.Find("QuestionCounter").GetComponent <TextMeshProUGUI>().text = "Question " + actualQuestion + " / " + numberOfQuestions;

        // Either this is a MusicQuestion and we musicQuestionIsPlaying its music or we musicQuestionIsPlaying the basic question music
        if (DataModel.CurQuestion() is MusicQuestion)
        {
            MusicQuestion musicQ = (MusicQuestion)DataModel.CurQuestion();
            var           x      = new WWW("file:///" + localpath + '/' + musicQ.MusicPath);
            while (!x.isDone)
            {
            }
            musicSource.clip = x.GetAudioClip();
            musicSource.time = musicQ.StartTrack;
            if (!musicQ.Fade)
            {
                musicSource.volume = musicQ.Volume;
            }
            question_length_to_time = 2.5f;
        }
        else
        {
            int music_index = Random.Range(1, 4);
            music              = Resources.Load <AudioClip>("Sounds/" + DataModel.QuestionMusicName + music_index);
            musicSource.clip   = music;
            musicSource.volume = 0.75f;
        }

        foreach (PlayerModel e in teamsCtrl)
        {
            ChangeTeamColor(0, e);
            e.buzzed = false;
        }

        if (DataModel.CurQuestion() is MusicQuestion)
        {
            musicQuestionIsPlaying = true;
        }
        musicSource.Play();

        // After 10 seconds, the timer and answers appears, 7 seconds after that a false answer disappears, again 4 seconds after and at 25 sec teams can'musicQ answer
        // anymore. Finally at 28 seconds, the true answer is revealed and points are given

        if (DataModel.CurQuestion() is TextQuestion)
        {
            TextQuestion texteQ = (TextQuestion)DataModel.CurQuestion();
            questionText.text = texteQ.Question;

            //formule de merde a changer
            question_length_to_time = questionText.text.Length * 0.07f;
        }
        else
        {
            questionText.text = DataModel.TextToUse["music_display"] + actualQuestion;
        }
        answers = questions.First().Answers;
        GameObject.Find("Answer 1").GetComponent <TextMeshProUGUI>().text = answers[0].AnswerText;
        GameObject.Find("Answer 2").GetComponent <TextMeshProUGUI>().text = answers[1].AnswerText;
        GameObject.Find("Answer 3").GetComponent <TextMeshProUGUI>().text = answers[2].AnswerText;
        GameObject.Find("Answer 4").GetComponent <TextMeshProUGUI>().text = answers[3].AnswerText;

        Invoke("RevealAnswers", 3.0f + question_length_to_time);
        Invoke("EliminateFalseAnswer", 10.0f + question_length_to_time);
        Invoke("EliminateFalseAnswer", 14.0f + question_length_to_time);
        Invoke("DisableTeam", 18.0f + question_length_to_time);
        Invoke("FinalAnswerPhase", 21.0f + question_length_to_time);
    }
Пример #6
0
    public void Load(string filepath)
    {
        string     path       = filepath;
        string     jsonString = File.ReadAllText(path);
        JSONObject dataJson   = (JSONObject)JSON.Parse(jsonString);

        // Set values
        QuizName     = dataJson["Quizname"].Value;
        CurTopicName = dataJson["CurTopicName"].Value;
        RoundNumber  = dataJson["RoundNumber"].AsInt;
        //indexes
        IroundCur    = dataJson["IroundCur"].AsInt;
        ItopicCur    = dataJson["ItopicCur"].AsInt;
        IquestionCur = dataJson["IquestionCur"].AsInt;

        Scores = new int[NumberOfTeams];
        Jokers = new bool[NumberOfTeams];

        for (int i = 0; i < Scores.Length; i++)
        {
            Scores[i] = dataJson[("Score" + i)].AsInt;
            Jokers[i] = dataJson[("Joker" + i)].AsBool;
        }

        // Rounds
        List <RoundData> rdList = new List <RoundData>();

        for (int i = 0; i < dataJson["Rounds"].AsArray.Count; i++)
        {
            List <TopicData> tdList = new List <TopicData>();
            for (int j = 0; j < dataJson["Rounds"].AsArray[i]["Topics"].AsArray.Count; j++)
            {
                List <QuestionData> qdList = new List <QuestionData>();
                for (int k = 0; k < dataJson["Rounds"].AsArray[i]["Topics"].AsArray[j]["Questions"].AsArray.Count; k++)
                {
                    AnswerData[] adTab = new AnswerData[dataJson["Rounds"].AsArray[i]["Topics"].AsArray[j]["Questions"].AsArray[k]["Answers"].AsArray.Count];
                    for (int l = 0; l < adTab.Length; l++)
                    {
                        AnswerData ad = new AnswerData(dataJson["Rounds"].AsArray[i]["Topics"].AsArray[j]["Questions"].AsArray[k]["Answers"].AsArray[l]["AnswerText"].Value,
                                                       dataJson["Rounds"].AsArray[i]["Topics"].AsArray[j]["Questions"].AsArray[k]["Answers"].AsArray[l]["IsTrue"].AsBool);

                        adTab[l] = ad;
                    }

                    switch (dataJson["Rounds"].AsArray[i]["Type"].Value)
                    {
                    case "Blind test":
                        MusicQuestion mq = new MusicQuestion(dataJson["Rounds"].AsArray[i]["Topics"].AsArray[j]["Questions"].AsArray[k]["MusicPath"].Value,
                                                             adTab);
                        mq.StartTrack = dataJson["Rounds"].AsArray[i]["Topics"].AsArray[j]["Questions"].AsArray[k]["StartTrack"].AsFloat;
                        mq.Volume     = dataJson["Rounds"].AsArray[i]["Topics"].AsArray[j]["Questions"].AsArray[k]["Volume"].AsFloat;
                        mq.Fade       = dataJson["Rounds"].AsArray[i]["Topics"].AsArray[j]["Questions"].AsArray[k]["Fade"].AsBool;
                        qdList.Add((QuestionData)mq);
                        break;

                    case "Musique":
                        MusicQuestion mq2 = new MusicQuestion(dataJson["Rounds"].AsArray[i]["Topics"].AsArray[j]["Questions"].AsArray[k]["MusicPath"].Value,
                                                              adTab);
                        mq2.StartTrack = dataJson["Rounds"].AsArray[i]["Topics"].AsArray[j]["Questions"].AsArray[k]["StartTrack"].AsFloat;
                        mq2.Volume     = dataJson["Rounds"].AsArray[i]["Topics"].AsArray[j]["Questions"].AsArray[k]["Volume"].AsFloat;
                        mq2.Fade       = dataJson["Rounds"].AsArray[i]["Topics"].AsArray[j]["Questions"].AsArray[k]["Fade"].AsBool;
                        qdList.Add((QuestionData)mq2);
                        break;

                    case "Image":
                        ImageQuestion iq = new ImageQuestion(dataJson["Rounds"].AsArray[i]["Topics"].AsArray[j]["Questions"].AsArray[k]["ImagePath"].Value,
                                                             adTab);
                        qdList.Add((QuestionData)iq);
                        break;

                    case "QCM":
                        TextQuestion tq = new TextQuestion(dataJson["Rounds"].AsArray[i]["Topics"].AsArray[j]["Questions"].AsArray[k]["Question"].Value,
                                                           adTab);
                        qdList.Add((QuestionData)tq);
                        break;

                    case "MCQ":
                        TextQuestion tq2 = new TextQuestion(dataJson["Rounds"].AsArray[i]["Topics"].AsArray[j]["Questions"].AsArray[k]["Question"].Value,
                                                            adTab);
                        qdList.Add((QuestionData)tq2);
                        break;

                    case "TrueFalse":
                        TrueFalseQuestion tf = new TrueFalseQuestion(dataJson["Rounds"].AsArray[i]["Topics"].AsArray[j]["Questions"].AsArray[k]["Question"].Value,
                                                                     adTab);
                        qdList.Add((QuestionData)tf);
                        break;

                    case "VraiFaux":
                        TrueFalseQuestion tf2 = new TrueFalseQuestion(dataJson["Rounds"].AsArray[i]["Topics"].AsArray[j]["Questions"].AsArray[k]["Question"].Value,
                                                                      adTab);
                        qdList.Add((QuestionData)tf2);
                        break;

                    default:
                        Debug.LogError("Type de question non-reconnu");
                        break;
                    }
                }
                TopicData td = new TopicData(dataJson["Rounds"].AsArray[i]["Topics"].AsArray[j]["Name"].Value,
                                             qdList);
                td.IsAvailable = dataJson["Rounds"].AsArray[i]["Topics"].AsArray[j]["IsAvailable"].AsBool;

                tdList.Add(td);
            }

            RoundData rd = new RoundData(dataJson["Rounds"].AsArray[i]["Type"].Value, tdList, dataJson["Rounds"].AsArray[i]["IsBuzzActivate"].AsBool);

            rdList.Add(rd);
        }
        Rounds = rdList;
    }
Пример #7
0
    /**
     * @author David
     *
     * Saving the current state of DataModel in the data.json file
     **/
    public static void Save(string filepath)
    {
        JSONObject dataJson = new JSONObject();

        dataJson.Add("Quizname", QuizName);
        dataJson.Add("CurTopicName", CurTopicName);
        dataJson.Add("RoundNumber", RoundNumber);
        // indexes
        dataJson.Add("IroundCur", IroundCur);
        dataJson.Add("ItopicCur", ItopicCur);
        dataJson.Add("IquestionCur", IquestionCur);

        for (int i = 0; i < Scores.Length; i++)
        {
            dataJson.Add("Score" + i, Scores[i]);
            dataJson.Add("Joker" + i, Jokers[i]);
        }

        JSONArray roundsJsonArray = new JSONArray();

        foreach (RoundData rd in Rounds)
        {
            JSONObject roundJson = new JSONObject();
            roundJson.Add("Type", rd.Type);
            roundJson.Add("IsBuzzActivate", rd.IsBuzzRound);
            JSONArray topicsJsonArray = new JSONArray();
            foreach (TopicData td in rd.Topics)
            {
                JSONObject topicJson = new JSONObject();

                topicJson.Add("Name", td.Name);
                topicJson.Add("IsAvailable", td.IsAvailable);

                JSONArray questionsJsonArray = new JSONArray();
                foreach (QuestionData qd in td.Questions)
                {
                    JSONObject questionJson = new JSONObject();

                    switch (qd.GetType().ToString())
                    {
                    case "MusicQuestion":
                        MusicQuestion mq = (MusicQuestion)qd;
                        questionJson.Add("MusicPath", mq.MusicPath);
                        questionJson.Add("StartTrack", mq.StartTrack);
                        questionJson.Add("Volume", mq.Volume);
                        questionJson.Add("Fade", mq.Fade);
                        break;

                    case "ImageQuestion":
                        ImageQuestion iq = (ImageQuestion)qd;
                        questionJson.Add("ImagePath", iq.ImagePath);
                        break;

                    case "TextQuestion":
                        TextQuestion tq = (TextQuestion)qd;
                        questionJson.Add("Question", tq.Question);
                        break;

                    case "TrueFalseQuestion":
                        TrueFalseQuestion tfq = (TrueFalseQuestion)qd;
                        questionJson.Add("Question", tfq.Question);
                        break;

                    default: Debug.LogError("Type de question non-reconnu"); break;
                    }

                    JSONArray answersJsonArray = new JSONArray();

                    foreach (AnswerData ad in qd.Answers)
                    {
                        JSONObject answerJson = new JSONObject();

                        answerJson.Add("AnswerText", ad.AnswerText);
                        answerJson.Add("IsTrue", ad.IsTrue);

                        answersJsonArray.Add(answerJson);
                    }
                    questionJson.Add("Answers", answersJsonArray);

                    questionsJsonArray.Add(questionJson);
                }
                topicJson.Add("Questions", questionsJsonArray);

                topicsJsonArray.Add(topicJson);
            }

            roundJson.Add("Topics", topicsJsonArray);

            roundsJsonArray.Add(roundJson);
        }

        dataJson.Add("Rounds", roundsJsonArray);

        File.WriteAllText(filepath, dataJson.ToString());
    }
Пример #8
0
    private void RunningQuestions()
    {
        goingToNextQuestion = false;
        // Make required objects to disappear at the start of question
        GameObject.Find("ArrowButton").GetComponent <Button>().interactable = false;

        arrow.GetComponent <CanvasGroup>().alpha = 0;
        foreach (GameObject e in timerPanelList)
        {
            e.GetComponent <CanvasGroup>().alpha = 0;
        }
        foreach (GameObject p in answerList)
        {
            p.GetComponent <CanvasGroup>().alpha = 0;
        }

        isNextAvailable = false;

        GameObject.Find("QuestionCounter").GetComponent <TextMeshProUGUI>().text = "Question " + actualQuestion + " / " + numberOfQuestions;

        // Either this is a MusicQuestion and we musicQuestionIsPlaying its music or we musicQuestionIsPlaying the basic question music
        if (DataModel.CurQuestion() is MusicQuestion)
        {
            MusicQuestion musicQ = (MusicQuestion)DataModel.CurQuestion();
            var           x      = new WWW("file:///" + localpath + '/' + musicQ.MusicPath);
            while (!x.isDone)
            {
            }
            musicSource.clip = x.GetAudioClip();
            musicSource.time = musicQ.StartTrack;
            if (!musicQ.Fade)
            {
                musicSource.volume = musicQ.Volume;
            }
        }
        else
        {
            music            = Resources.Load <AudioClip>("Sounds/" + DataModel.QuestionMusicName);
            musicSource.clip = music;
        }

        DisableTeam();

        StartCoroutine(DisplayText());

        foreach (PlayerModel e in teamsctrl)
        {
            ChangeTeamColor(0, e);
        }

        if (DataModel.CurQuestion() is MusicQuestion)
        {
            musicQuestionIsPlaying = true;
        }
        musicSource.Play();

        // After 10 seconds, the timer and answers appears, 7 seconds after that a false answer disappears, again 4 seconds after and at 25 sec teams can'musicQ answer
        // anymore. Finally at 28 seconds, the true answer is revealed and points are given
        Invoke("RevealAnswers", 10);
        Invoke("EliminateFalseAnswer", 17);
        Invoke("EliminateFalseAnswer", 21);
        Invoke("DisableTeam", 25);
        Invoke("FinalAnswerPhase", 28);
    }
Пример #9
0
    void Update()
    {
        if (!gfini)
        {
            for (int i = 0; i < teamsctrl.Count; i++)
            {
                if (teamsctrl[i].buzzed)
                {
                    Pause();
                    while (!grepondu)
                    {
                        if (Input.GetKeyDown(KeyCode.Y))
                        {
                            DataModel.Scores[i] += 5;
                            GoToNextQuestion();
                        }
                        else if (Input.GetKeyDown(KeyCode.N))
                        {
                            grepondu = true;
                            Pause();
                            teamsctrl[i].enabled = false;
                        }
                    }
                }
            }
        }

        // Pause/Resume the game
        if (Input.GetKeyUp(DataModel.Pause))
        {
            Pause();
        }

        //go to next question
        if (Input.GetKeyDown(DataModel.Next))
        {
            GoToNextQuestion();
        }

        if (musicQuestionIsPlaying)
        {
            // Make the sound fade in
            MusicQuestion musicQ = (MusicQuestion)DataModel.CurQuestion();
            if (!resetvol && musicQ.Fade)
            {
                musicSource.volume = 0;
                resetvol           = true;
            }

            if (musicQ.Fade && musicQuestionIsPlaying)
            {
                if (musicSource.volume < musicQ.Volume)
                {
                    Debug.Log(musicSource.volume);
                    musicSource.volume = musicSource.volume + (Time.deltaTime / 8);
                }
            }

            if (timerctrl.GetCurrentTimeValue() < 2f)
            {
                if (musicSource.volume > 0)
                {
                    musicSource.volume -= musicQ.Volume * Time.deltaTime / 2f;
                }
            }
        }
    }