/// <summary> /// Called when [sensor hit]. /// </summary> /// <param name="e">The e.</param> private void OnScoreChanged(GameEngineEvents.ScoreChanged e) { if (_config.MeterSoundsEnabled && e.NewScore > e.OldScore) { PlaySoundResource(PUNCH_SOUNDS[_random.Next(PUNCH_SOUNDS.Length)]); } }
/// <summary> /// Called when [meter score changed]. /// </summary> /// <param name="meterScoreData">The meter score data.</param> private void OnScoreChanged(GameEngineEvents.ScoreChanged e) { using (ReaderWriterLockMgr lockMgr = new ReaderWriterLockMgr(_dataLog.Scores.Lock)) { lockMgr.EnterWriteLock(); _dataLog.Scores.AddScoresRow( DateTime.Now, // Current datetime stamp e.SensorId, // Sensor ID _game.GameNumber, // Game number _game.RoundNumber, // Round number DateTime.Now - _countdownStartedTime, // Elapsed time (_meterNames.ContainsKey(e.SensorId) ? _meterNames[e.SensorId] : string.Empty), // Meter Name _config.RequiredImpactLevel, // required impact level e.ImpactLevel, // Actual impact level (int)(e.NewScore - e.OldScore), // Number of points e.NewScore ); } }