Example #1
0
            protected override Task <StarDifficulty> ComputeValueAsync(DifficultyCacheLookup lookup, CancellationToken token = default)
            {
                var rateAdjust = lookup.OrderedMods.OfType <ModRateAdjust>().SingleOrDefault();

                if (rateAdjust != null)
                {
                    return(Task.FromResult(new StarDifficulty(BASE_STARS + rateAdjust.SpeedChange.Value, 0)));
                }

                return(Task.FromResult(new StarDifficulty(BASE_STARS, 0)));
            }
Example #2
0
        protected override Task <StarDifficulty> ComputeValueAsync(DifficultyCacheLookup lookup, CancellationToken token = default)
        {
            return(Task.Factory.StartNew(() =>
            {
                if (CheckExists(lookup, out var existing))
                {
                    return existing;
                }

                return computeDifficulty(lookup);
            }, token, TaskCreationOptions.HideScheduler | TaskCreationOptions.RunContinuationsAsynchronously, updateScheduler));
        }
Example #3
0
 protected override Task <StarDifficulty?> ComputeValueAsync(DifficultyCacheLookup lookup, CancellationToken token = default)
 {
     return(Task.FromResult <StarDifficulty?>(ComputeDifficulty?.Invoke(lookup) ?? new StarDifficulty(BASE_STARS, 0)));
 }