private void Judge(CutScoreBuffer cutScoreBuffer, int?assumedAfterCutScore = null) { var before = cutScoreBuffer.beforeCutScore; var after = assumedAfterCutScore ?? cutScoreBuffer.afterCutScore; var accuracy = cutScoreBuffer.centerDistanceCutScore; var total = before + after + accuracy; var timeDependence = Mathf.Abs(_noteCutInfo !.Value.cutNormal.z); _judgmentService.Judge(cutScoreBuffer.noteScoreDefinition, ref _text, ref _color, total, before, after, accuracy, timeDependence); }
// ReSharper disable InconsistentNaming internal static bool Prefix(FlyingScoreEffect __instance, NoteCutInfo ____noteCutInfo) // ReSharper enable InconsistentNaming { if (ConfigProvider.CurrentConfig == null) { return(true); } if (ConfigProvider.CurrentConfig.DoIntermediateUpdates) { ScoreModel.RawScoreWithoutMultiplier(____noteCutInfo, out var before, out var after, out var accuracy); var total = before + after + accuracy; JudgmentService.Judge(__instance, total, before, after, accuracy); } return(false); }
// ReSharper disable InconsistentNaming internal static void Postfix(FlyingScoreEffect __instance, NoteCutInfo noteCutInfo) // ReSharper restore InconsistentNaming { if (ConfigProvider.CurrentConfig == null) { return; } void Judge(SaberSwingRatingCounter counter) { ScoreModel.RawScoreWithoutMultiplier(noteCutInfo, out var before, out var after, out var accuracy); var total = before + after + accuracy; JudgmentService.Judge(__instance, total, before, after, accuracy); // If the counter is finished, remove our event from it counter.didFinishEvent -= Judge; } // Apply judgments a total of twice - once when the effect is created, once when it finishes. Judge(noteCutInfo.swingRatingCounter); noteCutInfo.swingRatingCounter.didFinishEvent += Judge; }