コード例 #1
0
    public void LoadNextQuestion()
    {
        print("Load next question " + flow + " " + pass + " " + level);
        VectorRepresentationScript.instance.disableCanvas();

        if (ball.GetComponent <BallMoveBehavior>().target.name.Contains("Goal") || IsInvoking("LoadNextQuestion") ||
            tries > 1 || pass >= MaxPassesInFlow)
        {
            print("Ignore load next");
            return;
        }

        if (isCorrect)
        {
            targetPositions = findPlayerScript.find_teammate(level, startPositions, pass, flow);
        }

        BallMoveBehavior e = GameObject.FindGameObjectWithTag("Ball").GetComponent <BallMoveBehavior>();

        if (null != e.tb)
        {
            e.tb.clearLine();
        }
        //Make toggles clickable
        for (int i = 0; i < 4; ++i)
        {
            isOptioni [i].interactable = true;
        }

        //Clear all toggles
        optionsToggle.SetAllTogglesOff();

        targetPlayer = FieldController.instance.GetPlayerAt(targetPositions [0], targetPositions [1]);

        //highlight player
        targetPlayer.HighlightPlayer();

        //Set the question in the text box
        questionText.text = "Pass the ball to the hightlighted player";

        string[] options = new string[4];
        int[,] optionValues = new int[4, 2];

        //Choose a random position to set correct option in
        int correctIndex = Random.Range(0, 3);

        optionValues [correctIndex, 0] = targetPositions[0] - chosenPositions[0];
        optionValues [correctIndex, 1] = targetPositions[1] - chosenPositions[1];
        options [correctIndex]         = "(" + targetPositions[0].ToString() + "," + targetPositions [1].ToString() + ")";

        //Load random opponents
        for (int i = 0; i < 4; ++i)
        {
            if (correctIndex != i)
            {
                PlayerScript ps = FieldController.instance.GetRandomOpponent();
                string       positionIndices = Regex.Match(ps.name, "(?<=\\[).+?(?=\\])").Value;
                optionValues [i, 0] = int.Parse(positionIndices.Split(',')[0]) - startPositions[0];
                optionValues [i, 1] = int.Parse(positionIndices.Split(',')[1]) - startPositions[1];

                options [i] = "(" + positionIndices + ")";
            }

            isOptioni[i].transform.FindChild("Answer").GetComponent <Text>().text = options[i];
        }
        if (level == 1)
        {
            for (int i = 0; i < 4; ++i)
            {
                Text optionText = isOptioni [i].transform.FindChild("VectorValue1").transform.FindChild("Value").GetComponent <Text>();
                optionText.text = string.Format("{0} \n{1}", optionValues [i, 0], optionValues [i, 1]);
            }
        }
        else if (level == 2)
        {
            for (int i = 0; i < 4; ++i)
            {
                int multiplier = Random.Range(2, 5);
                optionValues [i, 0] *= multiplier;
                optionValues [i, 1] *= multiplier;

                Text optionText = isOptioni [i].transform.FindChild("VectorValue1").transform.FindChild("Value").GetComponent <Text>();
                optionText.text = string.Format("{0} \n{1}", optionValues [i, 0], optionValues [i, 1]);

                Text multiplierText = isOptioni [i].transform.FindChild("VectorValue1").transform.FindChild("Multiplier1").GetComponent <Text>();
                multiplierText.text = string.Format("{0}\n---\n{1}", 1, multiplier);

                GameObject multiplierObj = isOptioni [i].transform.FindChild("VectorValue1").transform.FindChild("Multiplier1").gameObject;
                multiplierObj.SetActive(true);
            }
        }
        else if (level == 3)
        {
            for (int i = 0; i < 4; ++i)
            {
                int x = Random.Range(-2, optionValues [i, 0] - 1);
                int y = Random.Range(-2, optionValues [i, 1] - 1);

                Text optionText1 = isOptioni [i].transform.FindChild("VectorValue1").transform.FindChild("Value").GetComponent <Text>();
                optionText1.text = string.Format("{0} \n{1}", x, y);

                Text optionText2 = isOptioni [i].transform.FindChild("VectorValue2").transform.FindChild("Value").GetComponent <Text>();
                optionText2.text = string.Format("{0} \n{1}", optionValues [i, 0] - x, optionValues [i, 1] - y);

                GameObject optionObj2 = isOptioni [i].transform.FindChild("VectorValue2").transform.gameObject;
                optionObj2.SetActive(true);

                isOptioni [i].transform.FindChild("Addition").gameObject.SetActive(true);
            }
        }

        //start timer
        TimerScript.instance.StartTimer(30);
    }