Beispiel #1
0
        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);
        }
Beispiel #2
0
// 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;
        }