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); }