protected IEnumerator Start() { // If not coming from Lobby if (mode == Modes.UNESPECIFIED) { // Play game music UIMaster.PlayMusic(UIMaster.Musics.Game); // Set correct mode, so testing works string modeName = manager.GetType().Name; mode = (Modes)Enum.Parse(typeof(Modes), modeName); } // Reset game stats for both players Player.Get(1).ranking = new GameStats(); Player.Get(2).ranking = new GameStats(); // Start rounds for (int round = 1; round <= rounds; round++) { stopped = true; // Display round info yield return(RoundDisplay.Show(round, roundWinner)); roundWinner = -1; stopped = false; // Start actual game mode logic var logic = StartCoroutine(Logic()); // Wait until winner is proclaimed while (roundWinner == -1) { yield return(null); } StopCoroutine(logic); } // At the end of the game stopped = true; UIMaster.PlayEffect(UIMaster.SFx.Whistle); yield return(new WaitForSeconds(1f)); StartCoroutine(ResetStage()); UIMaster.ShowRanking(); }