void Start() { List <Player> tmpPlayers = GameMetaData.GetInstance().GetPlayers; GameObject next; Player winner = null; PlayerInfo winnerInfo = null; int count = 0; Vector3 addPosition = new Vector3(stratPositionInfo.rect.width / (tmpPlayers.Count + 1), 0, 0); Vector3 startPosition = new Vector3(addPosition.x - (stratPositionInfo.rect.width / 2), 0, 0); foreach (Player player in tmpPlayers) { next = (GameObject)Instantiate(Resources.Load("Prefabs/PlayerInfo", typeof(GameObject)), stratPositionInfo); next.transform.localPosition = startPosition; startPosition += addPosition; PlayerInfo tmpPlInf = next.GetComponent <PlayerInfo>(); tmpPlInf.ShowInfoPlayer(player, count); if (winner == null || winner.Score < player.Score || winner.Timer < player.Timer) { winner = player; winnerInfo = tmpPlInf; } count++; } winnerInfo.ShowWin(); }
public static IEnumerator StartGameScene(int index) { CustomRun.instance = new CustomRun(); if (MetaDatas[index] == null) { MetaDatas[index] = new GameMetaData() { GameSlot = index, LastPlayed = DateTime.Now, FloorNumber = 1 }; } instance = new SaveGameSystem(MetaDatas[index]); var game = instance.LoadGameFromFileAsync(); var async = SceneManager.LoadSceneAsync(SceneConstants.PlayGame); async.allowSceneActivation = false; while (!async.isDone && !game.IsCompleted) { yield return(null); } instance.Game = game.Result; async.allowSceneActivation = true; }
public void UpdateGameInfo(GameMetaData data) { gameName.text = data.name; gameDesc.text = data.desc; metadata = data; StartCoroutine(LoadSprite(Application.streamingAssetsPath + "/" + data.name + "/" + data.thumbPath)); }
public DateTime GetGameStartTime() { try { using (SmartWebClient client = new SmartWebClient(30000)) { // Proxy client.Proxy = client.GetDefaulProxy(); string token = client.DownloadString( String.Format("{0}/consumer/{1}/{2}/{3}/token", this.Server + "/observer-mode/rest", "getGameMetaData", Region, GameId)); GameMetaData gd = JsonConvert.DeserializeObject <GameMetaData>(token); DateTime start = TimeZoneInfo.ConvertTime(DateTime.Parse(gd.startTime), TimeZoneInfo.FindSystemTimeZoneById(TimeZones[Region]), TimeZoneInfo.Local); // TimeSpan ts = new TimeSpan(gd.gameLength * TimeSpan.TicksPerSecond); // DateTime starttime = DateTime.Now.Subtract(ts); return(start); } } catch { } return(DateTime.Now); }
public static async Task <bool> Upload(string[] logLines, GameMetaData gameMetaData, GameStats game) { var log = string.Join(Environment.NewLine, logLines); var item = new UploaderItem(log.GetHashCode()); if (InProgress.Contains(item)) { Log.Info($"{item.Hash} already in progress. Waiting for it to complete..."); InProgress.Add(item); return(await item.Success); } InProgress.Add(item); Log.Info($"Uploading {item.Hash}..."); var success = false; try { success = await TryUpload(logLines, gameMetaData, game, true); } catch (Exception ex) { Log.Error(ex); Influx.OnGameUploadFailed(); } Log.Info($"{item.Hash} complete. Success={success}"); foreach (var waiting in InProgress.Where(x => x.Hash == item.Hash)) { waiting.Complete(success); } InProgress.RemoveAll(x => x.Hash == item.Hash); return(success); }
public static GameMetaData GetInstance() { if (m_Instance == null) { m_Instance = new GameMetaData(); } return(m_Instance); }
void GoPlay() { while (tempStorage.Count > 0) { Player player = tempStorage.Pop(); GameMetaData.GetInstance().SetPlayer(player); } SceneManager.LoadScene("Level"); }
public void PlayerLost() { IsDone = true; player.Difficulty = speedDifficulty; player.Rows = countRows; player.Score = currentScore; player.Timer = Time.time - timer; GameMetaData.GetInstance().SetPlayer(player); ManagerGame.singlton.CheckGameOver(); }
public MO2Installer(AbsolutePath archive, ModList modList, AbsolutePath outputFolder, AbsolutePath downloadFolder, SystemParameters parameters) : base( archive: archive, modList: modList, outputFolder: outputFolder, downloadFolder: downloadFolder, parameters: parameters, steps: 20) { Game = ModList.GameType.MetaData(); }
public bool Equals(GameMetaData other) { if (Id != other.Id) { return(false); } if (Value != other.Value) { return(false); } return(true); }
public static bool TryGetByFuzzyName(string someName, [MaybeNullWhen(false)] out GameMetaData gameMetaData) { var result = TryGetByFuzzyName(someName); if (result == null) { gameMetaData = Games.Values.First(); return(false); } gameMetaData = result; return(true); }
public void LoadGame(EndOfGameStats eog, GameMetaData meta, BasicInfo pi, bool bluewin) { EOG = eog; META = meta; PI = pi; BWINS = bluewin; gameInfoControl1.LoadGame(eog, meta, pi, bluewin); LoadStats(); LoadCharts(pi.SummonerName); MethodInvoker mi = new MethodInvoker(LoadEvents); mi.BeginInvoke(null, null); }
public VortexInstaller(string archive, ModList modList, string outputFolder, string downloadFolder) : base( archive: archive, modList: modList, outputFolder: outputFolder, downloadFolder: downloadFolder) { #if DEBUG // TODO: only for testing IgnoreMissingFiles = true; #endif GameInfo = ModList.GameType.MetaData(); }
public GameController() { this.LoLDataProvider = new LeagueDataProvider(); this.OCRDataProvider = new OCRDataProvider(); _ = new ReplayDataProvider(); this.gameState = new State.Game.State(this); this.gameData = new GameMetaData(); StateController.GameStop += OnGameStop; LoadSettings(); StartWaitingForTargetProcess(); }
public VortexInstaller(AbsolutePath archive, ModList modList, AbsolutePath outputFolder, AbsolutePath downloadFolder, SystemParameters parameters) : base( archive: archive, modList: modList, outputFolder: outputFolder, downloadFolder: downloadFolder, parameters: parameters, steps: 10) { #if DEBUG // TODO: only for testing IgnoreMissingFiles = true; #endif GameInfo = ModList.GameType.MetaData(); }
public string GetPGNFileHeader(GameMetaData metaData) { var sb = new StringBuilder(); sb.AppendLine($"[Event \"{ metaData.Event }\"]"); sb.AppendLine($"[Site \"{ metaData.Site }\"]"); sb.AppendLine($"[Date \"{ metaData.Date }\"]"); sb.AppendLine($"[Round \"{ metaData.Round }\"]"); sb.AppendLine($"[White \"{ metaData.White }\"]"); sb.AppendLine($"[Black \"{ metaData.Black }\"]"); sb.AppendLine($"[Result \"{ metaData.Result }\"]"); sb.AppendLine($"[WhiteELO \"{ metaData.WhiteELO }\"]"); sb.AppendLine($"[BlackELO \"{ metaData.BlackELO }\"]"); sb.AppendLine($"[ECO \"{ metaData.ECO }\"]"); return(sb.ToString()); }
public void SetInfo(GameMetaData data, int gameSlot) { _gameSlot = gameSlot; if (data != null) { hasGameSlot = true; ScrollText.text = data.LastPlayed.ToString("MM-dd-yy HH:mm"); ScrollText.fontSize = 34; GameInfo.SetActive(true); FloorNumber.text = data.FloorNumber.ToString(); } else { SetStartNewGameText(); } }
public StringBuilder GetGameHeader(GameMetaData gameMetaData) { var sb = new StringBuilder(); //write meta data var types = Enum.GetNames(typeof(MetaType)); foreach (var type in types) { string value = gameMetaData.GetValue(type); string headerLine = string.Concat("[", type, " \"", value + "\"]"); sb.AppendLine(headerLine); } sb.AppendLine(""); return(sb); }
public GameMetaData ParsePGNData(string input) { var metaData = new GameMetaData(); var findNode = new Regex(nodePattern, RegexOptions.IgnoreCase); var nodeMatch = findNode.Match(input); var names = Enum.GetNames(typeof(MetaType)); while (nodeMatch.Success) { for (int i = 1; i <= 2; i++) { var group = nodeMatch.Groups[i]; var captureCollection = group.Captures; for (int j = 0; j < captureCollection.Count; j++) { var capture = captureCollection[j]; var label = names.Where(n => capture.Value.Split(' ')[0] == n).FirstOrDefault(); if (!string.IsNullOrEmpty(label)) { var metaType = (MetaType)Enum.Parse(typeof(MetaType), label); var value = capture.Value.Replace("\"", "").Replace(label, "").Trim(); metaData.SetValue(metaType, value); } } } nodeMatch = nodeMatch.NextMatch(); } //so far this messes up with comments var modInput = Regex.Replace(input, removeComments, string.Empty); var twoParts = modInput.Split("\r\n\r\n"); var justPGN = twoParts[1]; var moves = new Regex(@"\d*\.\s?").Split(justPGN).ToList().Where(a => !string.IsNullOrEmpty(a)); var moveNum = 1; foreach (var move in moves) { metaData.Moves.Add(moveNum, move); moveNum++; } return(metaData); }
public void CreateGameMetaData() { try { GameMetaData = new GameMetaData() { Game = "DAYACTIVE", GameDisplayName = "DayActive", IconColorId = 5 }; } catch (Exception ex) { string currentMethodName = ErrorHandling.GetCurrentMethodName(); ErrorHandling.LogErrorToTxtFile(ex, currentMethodName); } }
internal static void Initialize() { Util.WriteLog("### OVERWATCH - GAMESENSE ###"); System.AppDomain.CurrentDomain.UnhandledException += (s, e) => { Util.WriteLog($"EXCEPTION!: {((System.Exception)e.ExceptionObject).Message}"); }; http = new HttpTool(); Util.WriteLog("Removing game registration"); http.PostAsync("remove_game", new { game = "OVERWATCH" }).ConfigureAwait(true); Util.WriteLog("Sending game registration"); http.PostAsync("game_metadata", GameMetaData.GetOverwatchRegistration()).ConfigureAwait(true); Util.WriteLog("Done sending game registration"); }
public string ConvertToPGN(GameMetaData metaData) { var sb = GetGameHeader(metaData); int i = 1; foreach (var move in metaData.Moves) { sb.Append(move.Value + " "); if (i % 7 == 0) { sb.Append("\n"); } i++; } return(sb.ToString()); }
private static async Task <bool> TryUpload(string[] logLines, GameMetaData gameMetaData, GameStats game, bool submitFailure) { try { game?.HsReplay.UploadTry(); Influx.OnGameUpload(game?.HsReplay.UploadTries ?? 1); var lines = logLines.SkipWhile(x => !x.Contains("CREATE_GAME")).ToArray(); var metaData = UploadMetaDataGenerator.Generate(lines, gameMetaData, game); Log.Info("Creating upload request..."); var uploadRequest = await ApiWrapper.CreateUploadRequest(metaData); Log.Info("Upload Id: " + uploadRequest.ShortId); await ApiWrapper.UploadLog(uploadRequest, lines); Log.Info("Upload complete"); if (game != null) { game.HsReplay.UploadId = uploadRequest.ShortId; game.HsReplay.ReplayUrl = uploadRequest.ReplayUrl; if (DefaultDeckStats.Instance.DeckStats.Any(x => x.DeckId == game.DeckId)) { DefaultDeckStats.Save(); } else { DeckStatsList.Save(); } } return(true); } catch (WebException ex) { Log.Error(ex); if (submitFailure) { Influx.OnGameUploadFailed(ex.Status); } return(false); } }
void Start() { if (singlton != null) { Destroy(singlton.gameObject); } singlton = this; List <Player> players = GameMetaData.GetInstance().GetPlayers; Transform[] tmpPosition = new Transform[players.Count]; if (players.Count == 1) { tmpPosition[0] = startPositionSolo; } else if (players.Count == 2) { tmpPosition = startPositionPlayer2; } else { tmpPosition = startPositionPlayer3; } GameObject instGrid; Game game; for (int i = 0; i < players.Count; i++) { instGrid = (GameObject)Instantiate(prefabGrid, tmpPosition[i]); game = instGrid.GetComponentInChildren <Game>(); games.Add(game); game.GoStart(players[i]); } }
void Start() { NewGameCanvas.SetActive(false); if (!GameFileManager.Exists("Meta")) { GameMetaData = new GameMetaData(); GameFileManager.Save(GameMetaData, "Meta"); } else { GameMetaData = GameFileManager.Load <GameMetaData>("Meta"); } foreach (var g in GameMetaData.GameSaves) { string t = g.Key; var btn = Instantiate(ButtonPrefab, LoadGames.transform); btn.onClick.AddListener(delegate { Load(t); }); btn.transform.GetChild(0).GetComponent <Text>().text = t; } }
public void LoadGame(EndOfGameStats eog, GameMetaData meta, BasicInfo pi, bool bluewin) { try { // RiotSharp.MatchEndpoint.MatchDetail m = Program.MainFormInstance.API.GetMatch(RiotTool.PlatformToRegion(meta.gameKey.platformId), (long)eog.GameId); TeamStats blueteam = new TeamStats(); TeamStats redteam = new TeamStats(); BluePanel.Controls.Clear(); RedPanel.Controls.Clear(); if (!bluewin) { metroLabel1.Text = "Red Team Wins"; metroLabel1.Style = MetroFramework.MetroColorStyle.Red; } if (meta.gameKey.platformId != "PBE1") { ginfo.Text = RiotTool.ToMapString((RiotSharp.MapType)pi.Map) + ", " + RiotTool.ToQueueString((QueueType)pi.Queue) + " - " + RiotTool.PlatformToRegion(meta.gameKey.platformId).ToString().ToUpper(); } else { ginfo.Text = eog.GameMode + ", " + eog.GameType.Replace("_", " ") + " - " + RiotTool.PlatformToRegion(meta.gameKey.platformId).ToString().ToUpper(); } if (eog != null) { foreach (PlayerParticipantStatsSummary p in eog.TeamPlayerParticipantStats) { Player2Ctrl p2 = new Player2Ctrl(p.TeamId == 200); p2.LoadPlayer(p, p.SummonerName, p.SkinName, ref blueteam); p2.Dock = DockStyle.Top; if (p.TeamId == 100) { BluePanel.Controls.Add(p2); } else { RedPanel.Controls.Add(p2); } } foreach (PlayerParticipantStatsSummary p in eog.OtherTeamPlayerParticipantStats) { Player2Ctrl p2 = new Player2Ctrl(p.TeamId == 200); p2.LoadPlayer(p, p.SummonerName, p.SkinName, ref redteam); p2.Dock = DockStyle.Top; if (p.TeamId == 100) { BluePanel.Controls.Add(p2); } else { RedPanel.Controls.Add(p2); } } } bluewk.Text = blueteam.WD.ToString(); bluewp.Text = blueteam.WP.ToString(); bluecreeps.Text = blueteam.CREEPS.ToString(); bluekda.Text = blueteam.Kill + " / " + blueteam.Deaths + " / " + blueteam.Assists; bluetd.Text = blueteam.TD.ToString(); redwk.Text = redteam.WD.ToString(); redwp.Text = redteam.WP.ToString(); redcreeps.Text = redteam.CREEPS.ToString(); redkda.Text = redteam.Kill + " / " + redteam.Deaths + " / " + redteam.Assists; redtd.Text = redteam.TD.ToString(); BluePanel.Controls.Add(panel5); RedPanel.Controls.Add(panel4); } catch (Exception ex) { Logger.Instance.Log.Error("Failed to load game", ex); } }
public GameNotInstalledException(GameMetaData gameMetaData) : base($"Game {gameMetaData.Game} does not appear to be installed.") { }
public static UploadMetaData Generate(GameMetaData gameMetaData, GameStats game) { var metaData = new UploadMetaData(); var players = GetPlayerInfo(game); if (players != null) { if (game.GameType == GameType.GT_BATTLEGROUNDS) { metaData.Players = players; } else { metaData.Player1 = players.FirstOrDefault(x => x.Id == 1); metaData.Player2 = players.FirstOrDefault(x => x.Id == 2); } } if (!string.IsNullOrEmpty(gameMetaData?.ServerInfo?.Address)) { metaData.ServerIp = gameMetaData.ServerInfo.Address; } if (gameMetaData?.ServerInfo?.Port > 0) { metaData.ServerPort = gameMetaData.ServerInfo.Port.ToString(); } if (gameMetaData?.ServerInfo?.GameHandle > 0) { metaData.GameHandle = gameMetaData.ServerInfo.GameHandle.ToString(); } if (gameMetaData?.ServerInfo?.ClientHandle > 0) { metaData.ClientHandle = gameMetaData.ServerInfo.ClientHandle.ToString(); } if (!string.IsNullOrEmpty(gameMetaData?.ServerInfo?.SpectatorPassword)) { metaData.SpectatePassword = gameMetaData.ServerInfo.SpectatorPassword; } if (!string.IsNullOrEmpty(gameMetaData?.ServerInfo?.AuroraPassword)) { metaData.AuroraPassword = gameMetaData.ServerInfo.AuroraPassword; } if (!string.IsNullOrEmpty(gameMetaData?.ServerInfo?.Version)) { metaData.ServerVersion = gameMetaData.ServerInfo.Version; } if (game?.StartTime > DateTime.MinValue) { metaData.MatchStart = game.StartTime.ToString("o"); } if (game != null) { metaData.GameType = game.GameType != GameType.GT_UNKNOWN ? (int)HearthDbConverter.GetBnetGameType(game.GameType, game.Format) : (int)HearthDbConverter.GetGameType(game.GameMode, game.Format); } if (game?.Format != null) { metaData.Format = (int)HearthDbConverter.GetFormatType(game.Format); } metaData.SpectatorMode = game?.GameMode == GameMode.Spectator; metaData.Reconnected = gameMetaData?.Reconnected ?? false; metaData.Resumable = gameMetaData?.ServerInfo?.Resumable ?? false; metaData.FriendlyPlayerId = game?.FriendlyPlayerId > 0 ? game.FriendlyPlayerId : (int?)null; var scenarioId = game?.ScenarioId ?? gameMetaData?.ServerInfo?.Mission; if (scenarioId > 0) { metaData.ScenarioId = scenarioId; } var build = gameMetaData?.HearthstoneBuild; if (build == null || build == 0) { build = game?.HearthstoneBuild; } if ((build == null || build == 0) && game != null) { build = BuildDates.GetByDate(game.StartTime); } if (build > 0) { metaData.HearthstoneBuild = build; } if (game?.BrawlSeasonId > 0) { metaData.BrawlSeason = game.BrawlSeasonId; } if (game?.RankedSeasonId > 0) { metaData.LadderSeason = game.RankedSeasonId; } if (gameMetaData?.TwitchVodData != null) { metaData.TwitchVod = gameMetaData.TwitchVodData; } if (game?.LeagueId > 0) { metaData.LeagueId = game.LeagueId; } return(metaData); }
public static UploadMetaData Generate(GameMetaData gameMetaData, GameStats game) { var metaData = new UploadMetaData(); var players = GetPlayerInfo(game); if (players != null) { if (game.GameMode == GameMode.Battlegrounds || game.GameMode == GameMode.Mercenaries) { metaData.Players = players; } else { metaData.Player1 = players.FirstOrDefault(x => x.Id == 1); metaData.Player2 = players.FirstOrDefault(x => x.Id == 2); } } if (!string.IsNullOrEmpty(gameMetaData?.ServerInfo?.Address)) { metaData.ServerIp = gameMetaData.ServerInfo.Address; } if (gameMetaData?.ServerInfo?.Port > 0) { metaData.ServerPort = gameMetaData.ServerInfo.Port.ToString(); } if (gameMetaData?.ServerInfo?.GameHandle > 0) { metaData.GameHandle = gameMetaData.ServerInfo.GameHandle.ToString(); } if (gameMetaData?.ServerInfo?.ClientHandle > 0) { metaData.ClientHandle = gameMetaData.ServerInfo.ClientHandle.ToString(); } if (!string.IsNullOrEmpty(gameMetaData?.ServerInfo?.SpectatorPassword)) { metaData.SpectatePassword = gameMetaData.ServerInfo.SpectatorPassword; } if (!string.IsNullOrEmpty(gameMetaData?.ServerInfo?.AuroraPassword)) { metaData.AuroraPassword = gameMetaData.ServerInfo.AuroraPassword; } if (!string.IsNullOrEmpty(gameMetaData?.ServerInfo?.Version)) { metaData.ServerVersion = gameMetaData.ServerInfo.Version; } if (game?.StartTime > DateTime.MinValue) { metaData.MatchStart = game.StartTime.ToString("o"); } if (game != null) { metaData.GameType = (int)HearthDbConverter.GetBnetGameType(game.GameType, game.Format); } if (game?.Format != null) { metaData.Format = (int)HearthDbConverter.GetFormatType(game.Format); } metaData.SpectatorMode = game?.GameMode == GameMode.Spectator; metaData.Reconnected = gameMetaData?.Reconnected ?? false; metaData.Resumable = gameMetaData?.ServerInfo?.Resumable ?? false; metaData.FriendlyPlayerId = game?.FriendlyPlayerId > 0 ? game.FriendlyPlayerId : (int?)null; var scenarioId = game?.ScenarioId ?? gameMetaData?.ServerInfo?.Mission; if (scenarioId > 0) { metaData.ScenarioId = scenarioId; } var build = gameMetaData?.HearthstoneBuild; if (build == null || build == 0) { build = game?.HearthstoneBuild; } if ((build == null || build == 0) && game != null) { build = BuildDates.GetByDate(game.StartTime); } if (build > 0) { metaData.HearthstoneBuild = build; } if (game?.BrawlSeasonId > 0) { metaData.BrawlSeason = game.BrawlSeasonId; } if (game?.RankedSeasonId > 0) { metaData.LadderSeason = game.RankedSeasonId; } if (gameMetaData?.TwitchVodData != null) { metaData.TwitchVod = gameMetaData.TwitchVodData; } if (game?.LeagueId > 0) { metaData.LeagueId = game.LeagueId; } if (game?.GameMode == GameMode.Battlegrounds) { metaData.BattlegroundsRaces = game.BattlegroundsRaces?.Cast <int>().OrderBy(x => x).ToArray(); } if (game?.GameMode == GameMode.Mercenaries) { if (game?.MercenariesBountyRunRewards?.Count > 0) { metaData.MercenariesRewards = game.MercenariesBountyRunRewards .Select(x => new UploadMetaData.MercenaryReward() { Id = x.Id, Coins = x.Coins }) .ToList(); } if (!string.IsNullOrEmpty(game?.MercenariesBountyRunId)) { metaData.MercenariesBountyRunId = game.MercenariesBountyRunId; metaData.MercenariesBountyRunTurnsTaken = game.MercenariesBountyRunTurnsTaken; metaData.MercenariesBountyRunCompletedNodes = game.MercenariesBountyRunCompletedNodes; } } return(metaData); }
public ReplayRecorder(string Server, long GameId, string Region, string Key, GhostReplay rep) { try { this.DownloadTasks = new List <DownloadTask>(); this.GameId = GameId; this.Region = Region; CurrentReplay = rep; Recording = true; if (Directory.Exists(rep.CacheDirectory)) { File.WriteAllText(rep.CacheDirectory + @"\cache.dat", Key); if (!string.IsNullOrEmpty(rep.SummonerName)) { File.WriteAllText(rep.CacheDirectory + @"\summoner.dat", rep.SummonerName); } } if (!Server.StartsWith("127.0.0.1:90")) { this.Server = "http://" + Server; rep.ObserverKey = Key; int ChunkTimeInterval; int LastChunk = 0; using (SmartWebClient client = new SmartWebClient(30000)) { // Proxy client.Proxy = client.GetDefaulProxy(); // Version rep.Version = client.DownloadString(String.Format("{0}/consumer/version", this.Server + "/observer-mode/rest")); // Token string token = client.DownloadString(String.Format("{0}/consumer/{1}/{2}/{3}/token", this.Server + "/observer-mode/rest", "getGameMetaData", Region, GameId)); GameMetaData meta = JsonConvert.DeserializeObject <GameMetaData>(token); ChunkTimeInterval = meta.chunkTimeInterval; LastChunk = meta.endStartupChunkId; } ThreadPool.QueueUserWorkItem(delegate { while (Recording) { try { GetChunk(); RetryAttempt = 0; } catch (Exception ex) { RetryAttempt++; if (OnProblemOccured != null) { OnProblemOccured(this, EventArgs.Empty); } if (RetryAttempt >= 10 && OnFailedToRecord != null) { Recording = false; OnFailedToRecord(ex); } else { Thread.Sleep(15000); } if (RetryAttempt == 1) { Logger.Instance.Log.Error("Failed to record [GET CHUNK]", ex); } } } }); } } catch (Exception ex) { if (OnFailedToRecord != null) { OnFailedToRecord(ex); } Logger.Instance.Log.Error("Failed to record [GLOBAL]", ex); Recording = false; } }