private IEnumerator <WaitCommand> BeginChallenge(IChallenge challenge, FlightStatistics player) { if (_isChallengeStarting) { Debug.LogError("Challenge '" + challenge.Name + "' start is triggered while another challenge '" + _activeChallenge.Value.Name + "' is already starting"); yield break; } _isChallengeStarting = true; Debug.Log("Starting challenge: " + challenge.Name); yield return(WaitCommand.Interleave( challenge.Begin(player), _challengeAnnouncerUi.Introduce(challenge.ChallengeType.PrettyString(), Color.white, challenge.Name))); _isChallengeStarting = false; }