예제 #1
0
    public void OpenAndInitWithQuizHisto(QuizHistoResponse quizHisto)
    {
        _isChallAndImSender   = false;
        _isChallAndImReceiver = true;
        gameObject.SetActive(true);

        _histoQuizResponse = quizHisto;
        _quiz        = new Quiz(quizHisto);
        _nbQuestions = _quiz.Questions.Length;
        ResultRoot.SetActive(false);
        QuizRoot.SetActive(true);
        //TODO Wait for quiz in async

        StartQuizButton.image.DOFade(1f, 0f);
        StartQuizButton.gameObject.SetActive(true);

        _starting = false;

        if (_questionObjects != null)
        {
            foreach (QuestionObject qo in _questionObjects)
            {
                Destroy(qo.gameObject);
            }
        }
        _questionObjects = new QuestionObject[_nbQuestions];
    }
예제 #2
0
    public Quiz(QuizHistoResponse quizHistoResponse)
    {
        Questions = new Question[quizHistoResponse.quiz.Length];

        for (int i = 0; i < quizHistoResponse.quiz.Length; i++)
        {
            Questions[i] = new Question(quizHistoResponse.quiz[i]);
        }
    }
예제 #3
0
    private void AcceptChallenge(string from, string uuid)
    {
        string result = WebUtility.Instance.Get(ACCEPT_CHALLENGE_URL, ("fromId", from), ("uuid", uuid));

        StringReader      reader        = new StringReader(result);
        JsonSerializer    ser           = JsonSerializer.Create(new JsonSerializerSettings());
        QuizHistoResponse histoResponse = (QuizHistoResponse)ser.Deserialize(reader, typeof(QuizHistoResponse));

        Close();
        (Program.QuizPage as QuizPage).OpenAndInitWithQuizHisto(histoResponse);
    }
예제 #4
0
    private void QuizCompleted()
    {
        QuizResponse toPost = _quizResponse;

        if (toPost != null)
        {
            toPost.userScore   = _goodAnswerCount;
            toPost.userLocalId = Program.LoginData.localId;

            for (int i = 0; i < _nbQuestions; i++)
            {
                toPost.quiz[i].userResponse = _userResponses[i].ToString();
            }
        }



        if (_isChallAndImSender)
        {
            WebUtility.Instance.Post(ADD_DEFI_URL, toPost, ("userLocalId", Program.LoginData.localId), ("cibleName", (Program.SearchPage as SearchPage).CredsPair.Value.challName), ("cibleId", (Program.SearchPage as SearchPage).CredsPair.Value.challUserId));
        }
        else if (_isChallAndImReceiver)
        {
            QuizHistoResponse toHistoPost = _histoQuizResponse;
            toHistoPost.histo.userScore2 = _goodAnswerCount;

            for (int i = 0; i < _nbQuestions; i++)
            {
                toHistoPost.quiz[i].userResponse = _userResponses[i].ToString();
            }

            WebUtility.Instance.Post(SAVE_DEFI_URL, toHistoPost, ("userLocalId", Program.LoginData.localId));
        }
        else
        {
            WebUtility.Instance.Post(SAVE_QUIZ_URL, toPost);
        }

        ResultRoot.SetActive(true);
        QuizRoot.SetActive(false);

        ResultText.text = $"{_goodAnswerCount}/{_nbQuestions}";
        ResultText.transform.DOScale(0f, 0f);
        ResultText.transform.DOScale(1f, 0.75f).SetEase(Ease.OutBack).SetDelay(1f);

        QuitQuizButton.transform.DOScale(0f, 0f);
        QuitQuizButton.transform.DOScale(1f, 0.75f).SetEase(Ease.OutBack).SetDelay(2f);
    }