コード例 #1
0
        /// <summary>
        /// Getitems the specified identifier.
        /// </summary>
        /// <param name="id">The identifier.</param>
        /// <returns></returns>
        public ActionResult getitem(int id)
        {
            int   totalpages = 1, pagesize = 50, recordcount = 0;
            Array data = null, arrdata1 = null, arrdata2 = null;
            var   question = new QuestionObject();
            var   url      = string.Empty;

            try
            {
                if (id != 0)
                {
                    question = _exam.GetItems(string.Format("questions/{0}?order=desc&sort=activity&site=stackoverflow&filter=!b0OfNINZfha_h*", id));
                    data     = question.items.ToArray();
                }
                responseStatus = "OK";
            }
            catch (Exception ex)
            {
                if (String.IsNullOrEmpty(ex.Message))
                {
                    responseStatus = "ERROR";
                }
                responseText = ex.Message;
            }
            return(Json(new
            {
                pagesize,
                totalpages,
                recordcount,
                page,
                status = responseStatus,
                message = responseText,
                data
            }));
        }
コード例 #2
0
    void Proceed(int buttonId)
    {
        CheckAnswerValue(first, second);
        if (currentQuestion % 3 == 0)
        {
            Invoke("DoEndingSpeech", 5);
        }
        else
        {
            handler.GetQuestionType(selectedQuestion);
            if (selectedQuestion != questionObjects[questionObjects.Count - 1])
            {
                for (int i = 0; i < questionObjects.Count; i++)
                {
                    if (questionObjects[i] == selectedQuestion)
                    {
                        selectedQuestion = questionObjects[i + 1];
                        break;
                    }
                }
            }

            nextQuestion.gameObject.SetActive(true);
            currentQuestion++;
        }
    }
コード例 #3
0
ファイル: FileObj.cs プロジェクト: soldiers1989/1.Website
        /// <summary>
        /// 获取指定目录下图片文件及文件夹
        /// </summary>
        /// <param name="theDir">指定目录</param>
        /// <param name="Rn">用于迭加的传入值,一般为空</param>
        /// <returns></returns>
        public static List <QuestionObject> ListTreeShowFileDir(string BasePath, DirectoryInfo theDir, List <QuestionObject> Rn) //递归目录文件
        {
            DirectoryInfo[] subDirectories = theDir.GetDirectories();                                                            //获得目录
            foreach (DirectoryInfo dirinfo in subDirectories)
            {
                QuestionObject qodir = new QuestionObject();
                qodir.Filename = dirinfo.FullName.Substring(dirinfo.FullName.IndexOf(BasePath)).Replace("\\", "/");
                qodir.Filetype = "dir";
                qodir.Name     = dirinfo.Name;
                Rn.Add(qodir);
            }

            FileInfo[] fileInfo = theDir.GetFiles();//目录下的文件
            foreach (FileInfo fInfo in fileInfo)
            {
                if (Web.Model.PublicModel.UpLoadFileImage.IndexOf(GetPostfixStr1(fInfo.Name)) != -1)
                {
                    QuestionObject qofile = new QuestionObject();
                    qofile.Filename = fInfo.FullName.Substring(fInfo.FullName.IndexOf(BasePath)).Replace("\\", "/");
                    qofile.Filetype = "file";
                    qofile.Name     = fInfo.Name;
                    Rn.Add(qofile);
                }
            }
            return(Rn);
        }
コード例 #4
0
        public override IWorldObject Clone()
        {
            QuestionObject res = new QuestionObject(Word);

            res.Copy(this);
            return(res);
        }
コード例 #5
0
    private QuestionObject CreateQuestionObject(List <string> QuestionLines, List <string> alternatives, List <int> correctAlternatives)
    {
        QuestionObject QuestionObj = new QuestionObject();

        foreach (string s in alternatives)
        {
            QuestionObj.Alternatives.Add(new Alternative {
                Text = s
            });
        }
        int i = 0;

        foreach (string ql in QuestionLines)
        {
            if (ql.Contains("{0}"))
            {
                QuestionObj.QuestionLines.Add(new QuestionLine {
                    Text = ql,
                    CorrectAlternative = QuestionObj.Alternatives[correctAlternatives[i]]
                });
                i++;
            }
            else
            {
                QuestionObj.QuestionLines.Add(new QuestionLine {
                    Text = ql,
                    CorrectAlternative = null
                });
            }
        }
        return(QuestionObj);
    }
コード例 #6
0
    // Funktion zum Einlesen der Fragen inklusive 4 Antwortmöglichkeiten und einer korrekten Antwort aus der XML-Datei. Es wird in ein Fragenobjekt umgewandelt und in einem Array gespeichert
    public static void parseXmlFile(string xmlData)
    {
        XmlDocument xmlDoc = new XmlDocument();

        xmlDoc.Load(new StringReader(xmlData));
        arraySize     = 0;
        questionArray = new QuestionObject[100];
        string      xmlPathPattern = "//QuestionCollection/Question";
        XmlNodeList myNodeList     = xmlDoc.SelectNodes(xmlPathPattern);

        foreach (XmlNode node in myNodeList)
        {
            XmlNode        questionText     = node.FirstChild;
            XmlNode        answer1          = questionText.NextSibling;
            XmlNode        answer2          = answer1.NextSibling;
            XmlNode        answer3          = answer2.NextSibling;
            XmlNode        answer4          = answer3.NextSibling;
            XmlNode        correctAnswer    = answer4.NextSibling;
            string         questionTextStr  = questionText.InnerXml;
            string         answer1Str       = answer1.InnerXml;
            string         answer2Str       = answer2.InnerXml;
            string         answer3Str       = answer3.InnerXml;
            string         answer4Str       = answer4.InnerXml;
            string         correctAnswerStr = correctAnswer.InnerXml;
            QuestionObject question         = new QuestionObject(questionTextStr, answer1Str, answer2Str, answer3Str, answer4Str, correctAnswerStr);
            questionArray[arraySize] = question;
            Debug.Log(question.question + question.answer1);
            Debug.Log(questionArray[arraySize].question + questionArray[arraySize].answer1 + questionArray[arraySize].answer2 + questionArray[arraySize].answer3 + questionArray[arraySize].answer4 + questionArray[arraySize].correctAnswer);
            arraySize++;
        }
        Debug.Log("Arraysize:" + arraySize);
    }
コード例 #7
0
    void ManageQuestion(PlayerObject.TurnStatus _turnStatus)
    {
        switch (_turnStatus)
        {
        case PlayerObject.TurnStatus.Answering:
            if (_currentQuestion == null)
            {
                int index = rand.Next(0, _questionList.Count - 1);
                _currentQuestion = _questionList[index];
                _questionList.RemoveAt(index);
                _countQuestionAnswered += 1;
            }
            break;

        case PlayerObject.TurnStatus.QuestionBreakInteract:
            if (_currentQuestion == null)
            {
                int index = rand.Next(0, _questionList.Count - 1);
                _currentQuestion = _questionList[index];
                _questionList.RemoveAt(index);
                _countQuestionAnswered += 1;
            }
            break;
        }
    }
コード例 #8
0
        public void NewQuestion(string title, string question, string answer)
        {
            var newQuestion = new QuestionObject {
                Title = title, Question = question, Answer = answer
            };

            _fileHandler.WriteToJson(newQuestion);
        }
コード例 #9
0
ファイル: AManager.cs プロジェクト: jackferrari/GoldRush
    protected void UpdateQuestion()
    {
        QuestionObject QO = this.GetGoodQuestion();

        this.lastQuestion = QO;
        questionObject.SendMessage("SetUp", QO);
        List <QuestionObject> questionObjects = new List <QuestionObject>();
    }
コード例 #10
0
 void SetUp(QuestionObject curr)
 {
     this.rightAnswer    = new Answer(curr.right, curr.rightResult);
     this.leftAnswer     = new Answer(curr.left, curr.leftResult);
     this.rightText.text = curr.rightChoice;
     this.leftText.text  = curr.leftChoice;
     this.question.text  = curr.question;
 }
コード例 #11
0
 public void StartGame(int id)
 {
     president.sprite        = presidents[id];
     selectedQuestion        = questionObjects[0];
     clickCounter            = selectedQuestion.requiredAnswers;
     question.text           = selectedQuestion.question;
     startGameCanvas.enabled = false;
     mainCanvas.enabled      = true;
 }
コード例 #12
0
 public override void LoadQuestion(Question question)
 {
     Question = question;
     QuestionDescription.text = question.QuestionText;
     QObject = question.GetQuestionObject();
     LoadQuestionLines(QObject.QuestionLines);
     AlternativeController.ClearAlternatives();
     AlternativeController.CreateAlternative(QObject.Alternatives);
 }
コード例 #13
0
        private void ButtonEditQuestion_Click(object sender, RoutedEventArgs e)
        {
            var answer       = _textUtility.ConvertRichTextBoxToString(rtbAnswerBox);
            var editQuestion = new QuestionObject
            {
                Title = tbQuestionTitle.Text, Question = tblQuestionDetails.Text, Answer = answer
            };

            _jsonController.EditQuestion(editQuestion);
        }
コード例 #14
0
    protected override QuestionObject GetQuestionObject(int year)
    {
        QuestionObject potential = this.allPossibleQuestions[Random.Range(0, allPossibleQuestions.Count)];

        while (potential.question == this.lastQuestion.question)
        {
            potential = this.allPossibleQuestions[Random.Range(0, this.allPossibleQuestions.Count)];
        }
        this.lastQuestion = potential;
        return(potential);
    }
コード例 #15
0
        public void EditQuestion(QuestionObject question)
        {
            var questions = LoadQuestions();

            questions.RemoveAll(x => x.Title == question.Title);
            var jsonData = JsonConvert.SerializeObject(questions);

            File.WriteAllText(JsonPath, jsonData);

            WriteToJson(question);
        }
コード例 #16
0
ファイル: AManager.cs プロジェクト: jackferrari/GoldRush
    protected void BasicSetUp(QuestionObject QO)
    {
        this.yearVal   = 1849;
        this.year.text = "" + this.yearVal;
        this.hider.SetActive(false);
        PlayerPrefs.SetString("Deported", "not yet");

        this.lastQuestion = QO;
        questionObject.SendMessage("SetUp", QO);
        Effect ltEffect = new Effect(30, 30, 10);

        player.SendMessage("ApplyLongTermEffect", ltEffect);
    }
コード例 #17
0
    // Use this for initialization
    void Start()
    {
        Effect nothing = new Effect(0, 0, 0);

        QuestionObject QO = new QuestionObject(nothing, nothing, "You arive in California! When you heard about the gold you decided to travel to America to try to strike it rich. You took out a credit agreement to pay for your passage and managed to buy a claim and hope to find opportunity in this new land",
                                               "Welcome",
                                               "Welcome",
                                               "You have arrived. Time to find your fortune!", "" +
                                               "You have arrived. Time to find your fortune!");

        this.BasicSetUp(QO);
        this.level     = 2;
        this.questions = new ImmigrantQuestions();
    }
コード例 #18
0
    public void Start()
    {
        Effect nothing = new Effect(0, 0, 0);

        QuestionObject QO = new QuestionObject(nothing, nothing,
                                               "You arive in California! When you heard about the gold out west you knew it was your ticket to improve your family's life. You left your wife behind and made the grueling trip west. Now you are here and have your claim and equipment layed out.",
                                               "Welcome", "Welcome",
                                               "You have arrived. Time to find your fortune!",
                                               "You have arrived. Time to find your fortune!");

        this.BasicSetUp(QO);
        this.level = 1;
        questions  = new WhiteQuestions();
    }
コード例 #19
0
ファイル: SC_Controller.cs プロジェクト: MrMokka/Bachelor2020
    public override void LoadQuestion(Question question)
    {
        Question = question;
        if (question == null)        //Temp fix, must be better lol :p
        {
            return;
        }
        QuestionDescription.text = question.QuestionText;
        QObject = question.GetQuestionObject();
        LoadQuestionLines(QObject.QuestionLines);

        //QuestionText.text = question.QuestionText;
        AlternativeController.ClearAlternatives();
        AlternativeController.CreateAlternative(QObject.Alternatives);
    }
コード例 #20
0
        public void WriteToJson(QuestionObject newQuestion)
        {
            var list = LoadQuestions();

            if (CheckIfQuestionExist(list, newQuestion.Title))
            {
                MessageBox.Show("Question exist");
                return;
            }

            list.Add(newQuestion);
            var jsonData = JsonConvert.SerializeObject(list);

            File.WriteAllText(JsonPath, jsonData);
        }
コード例 #21
0
    // Use this for initialization
    void Awake()
    {
        custom_controller = this;
        foodController    = GetComponent <FoodController> ();
        AlphabetChoices   = new List <GameObject> ();
        AlphabetChoices.Add(aAnswer);
        AlphabetChoices.Add(bAnswer);
        AlphabetChoices.Add(cAnswer);
        AlphabetChoices.Add(dAnswer);
        CustomCoin = data.CustomFood;
//		CustomQuestions = new List<QuestionObject> (GetComponent<CreateCustomQuestions> ().CustomQuestions);
//		print(DataManager.control.questions.questions);
        if (DataManager.control == null)
        {
            CustomQuestions = new List <QuestionObject> (GetComponent <CreateCustomQuestions> ().CustomQuestions);
            print("why:  " + DataManager.control);
        }
        else
        {
            if (DataManager.control.questions.questions != null)
            {
                if (DataManager.control.questions.questions.Count == 0 || DataManager.control.questions.questions.Count == 1)
                {
                    CustomQuestions = new List <QuestionObject> (GetComponent <CreateCustomQuestions> ().CustomQuestions);
                }
                else
                {
                    for (int i = 0; i < DataManager.control.questions.questions.Count; i++)
                    {
                        QuestionObject temp = new QuestionObject();
                        temp.Restore(DataManager.control.questions.questions [i]);
                        CustomQuestions.Add(temp);
                    }
                }
            }
            else
            {
                CustomQuestions = new List <QuestionObject> (GetComponent <CreateCustomQuestions> ().CustomQuestions);
            }

//			print (DataManager.control);
        }
    }
コード例 #22
0
        public async static Task <QuestionsObject> GetQuestionsObject(string path)
        {
            dynamic dynQuestionsObj = await GetResultFromURL(path);

            QuestionsObject questionsObj = new QuestionsObject();

            questionsObj.Count = dynQuestionsObj.count;

            ObservableCollection <QuestionObject> questions = new ObservableCollection <QuestionObject>();

            foreach (var question in dynQuestionsObj.questions)
            {
                questions.Add(QuestionObject.fromDynamic(question));
            }

            questionsObj.Questions = questions;

            return(questionsObj);
        }
コード例 #23
0
    public void EditQuestion(Question question)
    {
        Question       = question;
        SettingStuffUp = true;
        ResetSettings();
        QuestionObject qObj = question.GetQuestionObject();

        foreach (Alternative alternative in qObj.Alternatives)
        {
            Admin_AlternativeTemplate altTemplate = Instantiate(AlternativeLinePrefab, AlternativeParent, false).GetComponent <Admin_AlternativeTemplate>();
            AlternativeTexts.Add(alternative.Text);
            altTemplate.AlternativeText.text = alternative.Text;
            AlternativeLineList.Add(altTemplate.gameObject);
            altTemplate.gameObject.SetActive(true);
        }
        foreach (QuestionLine questionLine in qObj.QuestionLines)
        {
            Admin_QuestionLineTemplate qLine = Instantiate(QuestionLinePrefab, QuestionLineParent, false).GetComponent <Admin_QuestionLineTemplate>();
            qLine.LineText.text = questionLine.Text;
            qLine.CorrectAlternativeDropdown.ClearOptions();
            foreach (string s in AlternativeTexts)
            {
                qLine.CorrectAlternativeDropdown.options.Add(new Dropdown.OptionData {
                    text = s
                });
            }
            qLine.CorrectAlternativeDropdown.value = AlternativeTexts.IndexOf(questionLine.CorrectAlternative.Text);
            CorrectAlternativeDropdownList.Add(qLine.CorrectAlternativeDropdown.GetComponent <Dropdown>());
            qLine.gameObject.SetActive(true);
            QuestionLineList.Add(qLine.gameObject);
        }
        AlternativeButtonHolder.SetAsLastSibling();
        QuestionButtonHolder.SetAsLastSibling();
        QuestionTextInput.text = question.QuestionText;
        //WARNING: Need fix for non singlular category searches (only capeable of working with a single category atm)
        CategoryDropdown.value = CategoryDropdown.options.FindIndex(i => i.text.Equals(question.CategoryList[0].Name));
        CategoryDropdown.RefreshShownValue();
        DifficultyDropdown.value = DifficultyDropdown.options.FindIndex(i => i.text.Equals(question.Weight.ToString()));
        DifficultyDropdown.RefreshShownValue();
        ActiveToggle.isOn = Convert.ToBoolean(Question.Active);
        SettingStuffUp    = false;
    }
コード例 #24
0
        /// <summary>
        /// Gets the items.
        /// </summary>
        /// <param name="search">The search.</param>
        /// <param name="page">The page.</param>
        /// <returns></returns>
        public ActionResult getItems(string search = "", int page = 1)
        {
            int   totalpages = 1, pagesize = 50, recordcount = 0;
            Array data   = null;
            var   result = new QuestionObject();
            var   url    = string.Empty;

            try
            {
                url = !string.IsNullOrEmpty(search)? String.Format("search?page={0}&pagesize={1}&order=desc&sort=creation&intitle={2}&site=stackoverflow&filter=!-*f(6rc.bgwz", page, pagesize, search):
                      String.Format("questions?page={0}&pagesize={1}&order=desc&sort=creation&site=stackoverflow&filter=!-*f(6rc.bgwz", page, pagesize);
                result = _exam.GetItems(url);
                if (result.total != 0)
                {
                    recordcount = result.total;

                    totalpages = (int)Math.Ceiling(((float)recordcount / (float)pagesize));
                    page       = page < 1 ? 1 : page;
                    page       = page > totalpages ? totalpages : page;
                }
                data           = result.items.ToArray();
                responseStatus = "OK";
            }
            catch (Exception ex)
            {
                if (String.IsNullOrEmpty(ex.Message))
                {
                    responseStatus = "ERROR";
                }
                responseText = ex.Message;
            }
            return(Json(new
            {
                pagesize,
                totalpages,
                recordcount,
                page,
                status = responseStatus,
                message = responseText,
                data = data
            }));
        }
コード例 #25
0
ファイル: FileObj.cs プロジェクト: soldiers1989/1.Website
 /// <summary>
 /// 获取指定目录下所有文件
 /// </summary>
 /// <param name="theDir">指定目录</param>
 /// <param name="Rn">用于迭加的传入值,一般为空</param>
 /// <returns></returns>
 public static List <QuestionObject> ListTreeShowFile(string BasePath, DirectoryInfo theDir, List <QuestionObject> Rn) //递归目录文件
 {
     DirectoryInfo[] subDirectories = theDir.GetDirectories();                                                         //获得目录
     foreach (DirectoryInfo dirinfo in subDirectories)
     {
         FileInfo[] fileInfo = dirinfo.GetFiles();//目录下的文件
         foreach (FileInfo fInfo in fileInfo)
         {
             if (Web.Model.PublicModel.UpLoadFileType.IndexOf(GetPostfixStr1(fInfo.Name)) != -1)
             {
                 QuestionObject qo = new QuestionObject();
                 qo.Filename = fInfo.FullName.Substring(fInfo.FullName.IndexOf(BasePath));
                 qo.Filename = qo.Filename.Replace("\\", "/");
                 Rn.Add(qo);
             }
         }
         Rn = ListTreeShowFile(BasePath, dirinfo, Rn);
     }
     return(Rn);
 }
コード例 #26
0
    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();

        QuestionObject script = target as QuestionObject;

        if (GUILayout.Button("Build Object"))
        {
            script.pageList = new List <GameObject>();
            Transform[] array = script.gameObject.GetComponentsInChildren <Transform>(true);

            for (int i = 0; i < array.Length; i++)
            {
                if (array[i].name.Contains("Page"))
                {
                    script.pageList.Add(array[i].gameObject);
                }
            }
        }
    }
コード例 #27
0
    private Question CreateQuestion(string QuestionText, List <string> QuestionLines, List <string> alternatives, List <int> correctAlternatives, int weight)
    {
        Question Question = new Question {
            QuestionText = QuestionText,
            Weight       = weight
        };

        QuestionObject QuestionObj = new QuestionObject();

        foreach (string s in alternatives)
        {
            QuestionObj.Alternatives.Add(new Alternative {
                Text = s
            });
        }
        int i = 0;

        foreach (string ql in QuestionLines)
        {
            if (ql.Contains("{0}"))
            {
                QuestionObj.QuestionLines.Add(new QuestionLine {
                    Text = ql,
                    CorrectAlternative = QuestionObj.Alternatives[correctAlternatives[i]]
                });
                i++;
            }
            else
            {
                QuestionObj.QuestionLines.Add(new QuestionLine {
                    Text = ql,
                    CorrectAlternative = null
                });
            }
            Question.QuestionObject = JsonUtility.ToJson(QuestionObj, false);
        }
        return(Question);
    }
コード例 #28
0
    void loadQuestions()
    {
        string        question   = "Are you happy?";
        List <string> noanswers  = new List <string>();
        List <string> yesanswers = new List <string>();

        yesanswers.Add("Yes");
        yesanswers.Add("No");
        QuestionObject quest1 = new QuestionObject(question, yesanswers, noanswers);

        questionList.Add(quest1);

        question  = "School is important. Did you go today?";
        noanswers = new List <string>();
        noanswers.Add("No");
        yesanswers = new List <string>();
        yesanswers.Add("Yes");
        quest1 = new QuestionObject(question, yesanswers, noanswers);
        questionList.Add(quest1);

        question  = "Goals are important. Did you meet your goal for today?";
        noanswers = new List <string>();
        noanswers.Add("No");
        yesanswers = new List <string>();
        yesanswers.Add("Yes");
        quest1 = new QuestionObject(question, yesanswers, noanswers);
        questionList.Add(quest1);

        question  = "Friends and family can help us. How many can you name?";
        noanswers = new List <string>();
        noanswers.Add("0");
        yesanswers = new List <string>();
        yesanswers.Add("1-2");
        yesanswers.Add("2-5");
        yesanswers.Add("More than 5");
        quest1 = new QuestionObject(question, yesanswers, noanswers);
        questionList.Add(quest1);
    }
コード例 #29
0
    // 問題の選択
    public void ChoiceQuestion()
    {
        // データ数でランダム
        int choiceNum = UnityEngine.Random.Range(0, csvData.Count);

        questionObj = new QuestionObject(choiceNum);

        // 選択された問題から問題形式の取得と問題文、答えのセット
        int    questionFormatNum = Int32.Parse(csvData[choiceNum][0]);
        string questionText      = generator.QuestionFormatSwicher(questionFormatNum, csvData[choiceNum][1]);

        questionObj.questionText = questionText;
        questionObj.answerText   = csvData[choiceNum][2];
        //Debug.Log ("question:" + questionText);

        // 選択肢のセット
        int[] indexsRange = questionObj.SelectRange();
        for (int i = 0; i < indexsRange.Length; i++)
        {
            questionObj.choices[i] = csvData[indexsRange[i]][2];
            //Debug.Log ("choice" + i + ":" + choiceTexts[i]);
        }
    }
コード例 #30
0
    private QuestionObject CreateQuestionObject()
    {
        List <Alternative> alternatives = new List <Alternative>();

        foreach (string alternative in AlternativeTexts)
        {
            alternatives.Add(new Alternative {
                Text = alternative
            });
        }
        alternatives.RemoveAt(0);
        List <QuestionLine> questionLines = new List <QuestionLine>();

        foreach (GameObject questionLine in QuestionLineList)
        {
            Dropdown     correctAlternativeDropdown = questionLine.transform.GetChild(1).GetComponent <Dropdown>();
            QuestionLine ql = new QuestionLine {
                Text = questionLine.transform.GetChild(0).GetComponent <InputField>().text
            };
            //print(correctAlternativeDropdown.value + " : " + alternatives[correctAlternativeDropdown.value].Text);
            if (correctAlternativeDropdown.value == 0)
            {
                ql.CorrectAlternative = null;
            }
            else
            {
                ql.CorrectAlternative = alternatives[correctAlternativeDropdown.value - 1];
            }
            questionLines.Add(ql);
        }
        QuestionObject qObj = new QuestionObject {
            Alternatives  = alternatives,
            QuestionLines = questionLines
        };

        return(qObj);
    }
コード例 #31
0
 void ManageQuestion(PlayerObject.TurnStatus _turnStatus)
 {
     switch (_turnStatus)
     {
         case PlayerObject.TurnStatus.Answering:
             if (_currentQuestion == null)
             {
                 int index = rand.Next(0, _questionList.Count - 1);
                 _currentQuestion = _questionList[index];
                 _questionList.RemoveAt(index);
                 _countQuestionAnswered += 1;
             }
             break;
         case PlayerObject.TurnStatus.QuestionBreakInteract:
             if (_currentQuestion == null)
             {
                 int index = rand.Next(0, _questionList.Count - 1);
                 _currentQuestion = _questionList[index];
                 _questionList.RemoveAt(index);
                 _countQuestionAnswered += 1;
             }
         break;
     }
 }
コード例 #32
0
    void OnGUI()
    {
        if (!this.enabled) return;
        if (skin != null) if (GUI.skin != skin) GUI.skin = skin;
        if (_pObject.state == PlayerObject.PlayerState.Dead) return;

            ShowVictory();
            ShowCombo();
            ShowQuestionBreak();

        switch (_pObject._turnStatus)
        {
            case PlayerObject.TurnStatus.Idle:
                if (_countCorrectAnswer >= questionBreak) _countCorrectAnswer = 0;
                _pObject.state = PlayerObject.PlayerState.Normal;
            break;

            case PlayerObject.TurnStatus.Answering:

                if (_currentQuestion == null) return;
                _currentQuestion.promptFx();
                startx = Mathf.Lerp(startx, endx, Time.fixedDeltaTime * 3);
                cw = Mathf.Lerp(cw, w, Time.fixedDeltaTime * 3);
                ch = Mathf.Lerp(ch, h, Time.fixedDeltaTime * 3);
                GUI.Box(new Rect(0, 0, cw, ch), _currentQuestion.question);
                for (int x = 0; x < _currentQuestion.answers.Length; x++)
                {
                    if (left != null) GUI.DrawTexture(new Rect(10 + startx + (startx / 2 * x) + (Screen.width * 0.6f) / _currentQuestion.answers.Length, Screen.height * 0.2f + ((Screen.height * 0.1f * x) + 10) + 13 * x, (Screen.width * 0.05f), Screen.height * 0.1f), left);
                    if (GUI.Button(new Rect(startx + (startx / 2 * x), Screen.height * 0.2f + ((Screen.height * 0.1f * x) + 10) + 13 * x, (Screen.width * 0.6f) / _currentQuestion.answers.Length, Screen.height * 0.1f), _currentQuestion.answers[x]))
                    {
                        if (_currentQuestion.checkAnswer(x))
                        {
                            _pObject._turnStatus = PlayerObject.TurnStatus.Answered;
                            startx = -Screen.width * 0.6f;
                             AnswerResult.SetActive(true);
                            isCorrect = true;
                            isShowing = true;
                            _currentQuestion = null;
                            StartCoroutine(ToggleAnswerResult());
                            _countCorrectAnswer += 1;
                            if(!_pObject.useSpecial)
                            currentQb++;
                            if (combo < _pObject.maxCombo && !_pObject.useSpecial)
                            {
                                combo++;
                            }
                            return;
                        }
                        else
                        {
                            _pObject._turnStatus = PlayerObject.TurnStatus.Idle;
                            _currentQuestion = null;
                            startx = -Screen.width * 0.6f;
                            AnswerResult.SetActive(true);
                            isCorrect = false;
                            isShowing = true;
                            combo = 0;
                            StartCoroutine(ToggleAnswerResult());
                            return;
                        }
                    }
                }
                break;
            case PlayerObject.TurnStatus.QuestionBreakInteract:
                if (_currentQuestion == null) return;
                //Time Limit
                if (timer > 0) timer -= Time.fixedDeltaTime;
                else _pObject._turnStatus = PlayerObject.TurnStatus.Idle;
                //End Time Limit
                _currentQuestion.promptFx();
                startx = questionBreakPos.x = Mathf.Lerp(questionBreakPos.x, questionBreakPos.width, Time.fixedDeltaTime * 3);
                cw = Mathf.Lerp(cw, w, Time.fixedDeltaTime * 3);
                ch = Mathf.Lerp(ch, h, Time.fixedDeltaTime * 3);
                GUI.Box(new Rect(0, 0, cw, ch), _currentQuestion.question);
                for (int x = 0; x < _currentQuestion.answers.Length; x++)
                {
                    if (GUI.Button(new Rect(startx - ((Screen.width * 0.6f) / _currentQuestion.answers.Length / 2 * x), Screen.height * 0.2f + ((Screen.height * 0.1f * x) + 10) + 13 * x, (Screen.width * 0.6f) / _currentQuestion.answers.Length, Screen.height * 0.1f), _currentQuestion.answers[x]))
                    {
                        if (_currentQuestion.checkAnswer(x))
                        {
                            startx = -Screen.width * 0.6f;
                            AnswerResult.SetActive(true);
                            isCorrect = true;
                            isShowing = true;
                            _currentQuestion = null;
                            StartCoroutine(ToggleAnswerResult());
                            _countCorrectAnswer += 1;
                            _pObject._turnStatus = PlayerObject.TurnStatus.QuestionBreakAttack;
                            timer = questionBreakWindow + 0.5f;
                            return;
                        }
                        else
                        {
                            _pObject._turnStatus = PlayerObject.TurnStatus.Idle;
                            _currentQuestion = null;
                            startx = -Screen.width * 0.6f;
                            AnswerResult.SetActive(true);
                            isCorrect = false;
                            isShowing = true;
                            combo = 0;
                            StartCoroutine(ToggleAnswerResult());
                            return;
                        }
                    }
                }
                break;
            case PlayerObject.TurnStatus.MoveBack:
                if (combo == _pObject.maxCombo)
                {
                    combo = 0;
                    _pObject.useSpecial = true;
                }
                if (currentQb == questionBreak)
                {
                    _pObject.state = PlayerObject.PlayerState.Breaking;
                    _pObject._turnStatus = PlayerObject.TurnStatus.QuestionBreakSetup;
                    timer = questionBreakWindow;
                    currentQb = 0;
                }
                break;

        }
    }