protected override void UpdateDifficultyPoints(AimPoint aimPoint) { CurrentDiffPoints.Add(aimPoint); if (CurrentDiffPoints.Count == 4) { CurrentDiffPoints.RemoveAt(0); } }
protected override void UpdateDifficultyPoints(ReadingPoint readingPoint) { // Add readingPoint to currentDiffPoints CurrentDiffPoints.Add(readingPoint); // Remove points that are no longer visible double currentTime = readingPoint.Offset - readingPoint.ApproachTime; // Visual points are processed at the moment they first appear CurrentDiffPoints.RemoveAll(rp => rp.Offset < currentTime); }
protected override void UpdateDifficultyPoints(ClickPoint clickPoint) { // Add diffPoint to currentDiffPoints CurrentDiffPoints.Add(clickPoint); // Update pool if (CurrentDiffPoints.Count == 3) { CurrentDiffPoints.RemoveAt(0); } }
/// <summary> /// Difficulty of determining the position and order of aim points /// </summary> /// <returns>Difficulty as a double</returns> private double AimReading() { // Step 1: Assign point a focal weight ReadingPointA.FocalWeight = FocalWeight(ReadingPointA, ReadingPointB); // Step 2: Search for nearest note var nearestPoint = CurrentDiffPoints.Take(CurrentDiffPoints.Count - 1).OrderBy(rp => NormalisedDistance(rp, ReadingPointA)).FirstOrDefault(); // Step 3: Calculate overlap bonus double overlapBonus = OverlapBonus(ReadingPointA, nearestPoint); return(FocalTotal * ReadingPointA.FocalWeight * overlapBonus); }