void Start() { settings = LoadManager.LoadTargetSettingsXML(SceneManager.GetActiveScene().name); settings.TargetsInLevel = FindObjectsOfType <Target>().Length; running = true; medal.color = platinum; }
/// <summary> /// Initializes the match when one is started /// </summary> private void InitializeMatch() { // Find all the players Controller[] findControllers = FindObjectsOfType <Controller>(); for (int i = 0; i < findControllers.Length; i++) { controllers.Add(findControllers[i]); } // Load the last settings used if (settingsName.Contains("Target")) { currentTargetGameSettings = LoadManager.LoadTargetSettingsXML(settingsName); } else { currentGameSettings = LoadManager.LoadGameSettings(settingsName); } //Find the spawnpoints spawnPoints.AddRange(GameObject.FindGameObjectsWithTag("Respawn")); StatisticManager.instance.statistics = new Dictionary <PlayerID, Statistic>(); //If there aren't already players in this scene, we need to create them if (controllers.Count == 0) { PlayerID currentID = PlayerID.None; for (int i = 0; i < ControllerManager.instance.NumPlayers; i++) { currentID = (PlayerID)(i + 1); GameObject spawnPrefab = ControllerManager.instance.IsAIController(currentID) ? aiPlayerPrefab : playerPrefab; GameObject temp = (GameObject)GameObject.Instantiate(spawnPrefab, spawnPoints[i].transform.position, Quaternion.Euler(0, 90, 0)); Controller tempController = temp.GetComponent <Controller>(); controllers.Add(tempController); tempController.ProfileComponent = ProfileManager.instance.GetProfile(currentID); tempController.ID = currentID; StatisticManager.instance.statistics.Add(currentID, new Statistic()); } } for (int i = 0; i < ControllerManager.instance.NumPlayers; i++) { for (int j = 0; j < ControllerManager.instance.NumPlayers; j++) { if (i != j) { StatisticManager.instance.statistics[(PlayerID)(i + 1)].killedPlayer.Add((PlayerID)(j + 1), 0); StatisticManager.instance.statistics[(PlayerID)(i + 1)].killedByPlayer.Add((PlayerID)(j + 1), 0); } } } // Initialize the tokens TokenSpawner.instance.Init(currentGameSettings.EnabledTokens); for (int i = 0; i < controllers.Count; i++) { controllers[i].LifeComponent.Lives = currentGameSettings.StockLimit; } // Set up a timer that counts up for targets if (currentTargetGameSettings != null) { currentTargetGameSettings.TargetsInLevel = FindObjectsOfType <Target>().Length; matchTimer = gameObject.AddComponent <Timer>(); matchTimer.Initialize(Mathf.Infinity, "Match Timer"); } // All other games will have a countdown timer else { // If the timer is enabled in that game type if (currentGameSettings.TimeLimit > 0) { float timeLimit = currentGameSettings.TimeLimit == 0 ? Mathf.Infinity : currentGameSettings.TimeLimit; matchTimer = CountdownTimer.CreateTimer(gameObject, timeLimit, "Match Timer", TimeUp); } } }