public async Task <bool> Prepare() { try { PackageDownloader.Version ver = null; internalName = null; if (!isDev) { if (!Debugger.IsAttached && !IsSteamFolder) { Status = "Checking for self-upgrade"; var selfUpdater = new SelfUpdater("Zero-K"); selfUpdater.ProgramUpdated += delegate { Process.Start(Application.ExecutablePath, string.Join(" ", Environment.GetCommandLineArgs().Skip(1))); Environment.Exit(0); }; var task = new Task <bool>(() => selfUpdater.CheckForUpdate()); task.Start(); await task; } if (!IsSteamFolder) { downloader.RapidHandling = RapidHandling.SdzNameHash; if (!await downloader.DownloadFile("Checking for chobby update", DownloadType.RAPID, chobbyTag, Progress, 2)) { return(false); } if (!await downloader.DownloadFile("Checking for game update", DownloadType.RAPID, GlobalConst.DefaultZkTag, Progress, 2)) { return(false); } downloader.RapidHandling = RapidHandling.DefaultSdp; ver = downloader.PackageDownloader.GetByTag(chobbyTag); internalName = ver.InternalName; } else { internalName = GetSteamChobby(); ver = downloader.PackageDownloader.GetByInternalName(internalName) ?? downloader.PackageDownloader.GetByTag(chobbyTag); } if (ver == null) { Status = "Rapid package appears to be corrupted, please clear the folder"; return(false); } } else { internalName = "Chobby $VERSION"; } engine = engine ?? GetSteamEngine() ?? QueryDefaultEngine() ?? GlobalConst.DefaultEngineOverride; try { GameAnalytics.ConfigureGameEngineVersion(internalName); GameAnalytics.ConfigureSdkGameEngineVersion(engine); } catch (Exception ex) { Trace.TraceWarning("Game analytics failed to configure version: {0}", ex); } if (!IsSteamFolder) { if (!await downloader.DownloadFile("Downloading engine", DownloadType.ENGINE, engine, Progress, 2)) { return(false); } if (!await downloader.UpdateMissions(Progress)) { Trace.TraceWarning("Mission update has failed"); Status = "Error updating missions"; } } else { ClearSdp(); } downloader.UpdatePublicCommunityInfo(Progress); if (!isDev) { Status = "Reseting configs and deploying AIs"; ConfigVersions.DeployAndResetConfigs(paths, ver); } return(true); } catch (Exception ex) { Trace.TraceError("Unexpected error: {0}", ex); GameAnalytics.AddErrorEvent(EGAErrorSeverity.Error, $"Unexpected error {Status}: {ex}"); Status = "Unexpected error preparing chobby launch: " + ex.Message; return(false); } }
private static void configureSdkGameEngineVersion(string unitySdkVersion) { GameAnalytics.ConfigureSdkGameEngineVersion(unitySdkVersion); }