public void InitializeStatistics(Game game, GameEventAggregator eventAggregator)
        {
            String statisticsDefinitionPath = 
                Path.Combine("Statistics", game.Id + ".statistics");

            var definitions = _persistenceManager.Load<StatisticDefinitions>(statisticsDefinitionPath, StatisticsModule.StatisticsPersistenceProviderKey);

            if (definitions == null)
                return;

            foreach (var stat in definitions.Statistics)
            {
                var uState = _userState.GetStatisticState(stat.Id);
                stat.State = uState;
                stat.Initialize(eventAggregator);

                if (uState == null)
                    _userState.AddState(stat.State);
            }
        }
        private void EmulatorStarting(IEvent e)
        {
            var ese = e as EmulatorStartingEvent;

            if (ese.Mode != EmulationMode.Playing)
                return;

            if (ese.EmulationRunner.Emulator is IDebuggingEmulator)
            {
                GameEventAggregator gea = new GameEventAggregator(_eventAggregator, ese.EmulationRunner);
                
                foreach (var a in GetAchievements(ese.Game))
                {
                    if (!a.IsUnlocked)
                    {
                        AchievementEvaluator evaluator = new AchievementEvaluator(a, gea);
                        evaluator.RegisterHandlers(new AchievementHelpers(a, this, ese.EmulationRunner.Emulator));
                    }
                }
            }
        }
 public AchievementEvaluator(Achievement achievement, GameEventAggregator gameEventAggregator)
 {
     _gameEventAggregator = gameEventAggregator;
     _achievement = achievement;
 }