public void Handle(string logLine, IHsGameState gameState, IGame game) { if (!GoldProgressRegex.IsMatch(logLine) || (DateTime.Now - gameState.LastGameStart) <= TimeSpan.FromSeconds(10) || game.CurrentGameMode == GameMode.Spectator) { return; } var rawWins = GoldProgressRegex.Match(logLine).Groups["wins"].Value; if (!int.TryParse(rawWins, out int wins)) { return; } UpdateGoldProgress(wins, game); }
public void Handle(string logLine, IHsGameState gameState, IGame game) { if (GoldProgressRegex.IsMatch(logLine) && (DateTime.Now - gameState.LastGameStart) > TimeSpan.FromSeconds(10) && game.CurrentGameMode != GameMode.Spectator) { int wins; var rawWins = GoldProgressRegex.Match(logLine).Groups["wins"].Value; if (int.TryParse(rawWins, out wins)) { var timeZone = GetTimeZoneInfo(game.CurrentRegion); if (timeZone != null) { UpdateGoldProgress(wins, game, timeZone); } } } }
public void Handle(string logLine, IHsGameState gameState, IGame game) { if (CardAlreadyInCacheRegex.IsMatch(logLine)) { var id = CardAlreadyInCacheRegex.Match(logLine).Groups["id"].Value; if (game.CurrentGameMode == GameMode.Arena) { gameState.GameHandler.HandlePossibleArenaCard(id); } else { gameState.GameHandler.HandlePossibleConstructedCard(id, false); } } else if (GoldProgressRegex.IsMatch(logLine) && (DateTime.Now - gameState.LastGameStart) > TimeSpan.FromSeconds(10) && game.CurrentGameMode != GameMode.Spectator) { int wins; var rawWins = GoldProgressRegex.Match(logLine).Groups["wins"].Value; if (int.TryParse(rawWins, out wins)) { var timeZone = GetTimeZoneInfo(game.CurrentRegion); if (timeZone != null) { UpdateGoldProgress(wins, game, timeZone); } } } else if (DustRewardRegex.IsMatch(logLine)) { int amount; if (int.TryParse(DustRewardRegex.Match(logLine).Groups["amount"].Value, out amount)) { gameState.GameHandler.HandleDustReward(amount); } } else if (GoldRewardRegex.IsMatch(logLine)) { int amount; if (int.TryParse(GoldRewardRegex.Match(logLine).Groups["amount"].Value, out amount)) { gameState.GameHandler.HandleGoldReward(amount); } } }