Exemple #1
0
        public Manager(HSReplayNetConfig config = null, IGameDataProvider gameDataProvider = null)
        {
            gameDataProvider = gameDataProvider ?? new HearthMirrorDataProvider();

            LogReader = new LogReader(new List <LogWatcherData>
            {
                LogWatcherConfigs.Power,
                LogWatcherConfigs.LoadingScreen,
                LogWatcherConfigs.Decks,
                LogWatcherConfigs.Arena,
                LogWatcherConfigs.Rachelle
            });

            Game = new Game(gameDataProvider);
            Game.HearthstoneExited += () => LogReader.Stop().Forget();

            _gameEventManager = new GameEventManager(Game, LogReader, gameDataProvider);

            _procWatcher          = new ProcessWatcher("Hearthstone");
            _procWatcher.OnStart += ProcessWatcher_OnStart;
            _procWatcher.OnExit  += ProcessWatcher_OnExit;

            LogConfigWatcher.Start();
            LogConfigUpdater.LogConfigUpdated      += Game.OnHearthstoneRestartRequired;
            LogConfigUpdater.LogConfigUpdateFailed += Game.OnLogConfigError;

            if (config != null)
            {
                HSReplayNet = new HSReplayNet(config);
                _hsReplayNetEventManager = new HSReplayNetEventManager(HSReplayNet, Game);
                HSReplayNet.UpdateAccount().Forget();
            }
        }
Exemple #2
0
 public HSReplayNetEventManager(HSReplayNet hsReplayNet, Game game)
 {
     _hsReplayNet                     = hsReplayNet;
     _game                            = game;
     _collectionSyncLimiter           = new RateLimiter(3, TimeSpan.FromMinutes(2));
     game.PackOpened                 += Game_OnPackOpened;
     game.GameCreated                += Game_GameCreated;
     game.GameEnded                  += Game_OnGameEnd;
     game.Collection.Changed         += UploadCollection;
     hsReplayNet.OAuth.Authenticated += UploadCollection;
 }