/// <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 //currentGameSettings = LoadManager.LoadGameSettings(GameSettings.persistentExtension); currentGameSettings = LoadManager.LoadGameSettingsXML("Kill"); // 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 (currentGameSettings.Type.Equals(Enums.GameType.Target)) { currentGameSettings.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.TimeLimitEnabled) { matchTimer = gameObject.AddComponent<CountdownTimer>(); matchTimer.Initialize(currentGameSettings.TimeLimit, "Match Timer"); ((CountdownTimer)matchTimer).TimeOut += new CountdownTimer.TimerEvent(TimeUp); } } }
/// <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); } } }