private IEnumerator WaitForProvider() { string FormatTime(int timerSeconds) { if (shuttle.Status == EscapeShuttleStatus.DockedCentcom || shuttle.Status == EscapeShuttleStatus.DockedStation) { return(string.Empty); } return("ETA: " + TimeSpan.FromSeconds(timerSeconds).ToString("mm\\:ss")); } while (Provider == null) { yield return(WaitFor.EndOfFrame); } console = Provider.GetComponentInChildren <CommsConsole>(); //starting up, setting appropriate labels ProcessIdChange(console.IdCard); console.OnServerIDCardChanged.AddListener(ProcessIdChange); shuttle = GameManager.Instance.PrimaryEscapeShuttle; shuttleStatusLabel.SetValueServer(shuttle.Status.ToString()); statusImage.SetSprite((int)shuttle.Status); shuttle.OnShuttleUpdate.AddListener(status => { statusImage.SetSprite((int)shuttle.Status); shuttleStatusLabel.SetValueServer(status.ToString()); }); shuttleTimerLabel.SetValueServer(FormatTime(shuttle.CurrentTimerSeconds)); shuttle.OnTimerUpdate.AddListener(timerSeconds => { shuttleTimerLabel.SetValueServer(FormatTime(timerSeconds)); }); RefreshCallButtonText(); Logger.Log(nameof(WaitForProvider), Category.Shuttles); }