GetObjectsByWeight() 공개 메소드

public GetObjectsByWeight ( IEnumerable fates ) : IList
fates IEnumerable
리턴 IList
예제 #1
0
        private async Task <bool> ResolveFate()
        {
            if (!FateTimer.IsRunning)
            {
                FateTimer.Restart();
            }

            if (FateTimer.ElapsedMilliseconds < 3000)
            {
                return(await Task.FromResult(false));
            }

            FateTimer.Restart();

            FateData fate;
            var      singleFate = FatebotSettings.Instance.ThisFateOnly;

            if (!string.IsNullOrWhiteSpace(singleFate))
            {
                var listThisFateOnly = singleFate.Split(';')
                                       .Select(f => f.Trim()).ToList();

                fate =
                    FateManager.ActiveFates.FirstOrDefault(
                        f => listThisFateOnly.Any(tfo => tfo.ToLower().Contains(f.Name.ToLower())));

                if (fate == null)
                {
                    return(await Task.FromResult(false));
                }

                FateData = fate;
                return(await Task.FromResult(true));
            }

            fate = FateScoreProvider.GetObjectsByWeight(FateManager.ActiveFates).FirstOrDefault(ShouldSelectFate);
            if (fate == null)
            {
                return(await Task.FromResult(false));
            }

            FateData = fate;
            return(await Task.FromResult(true));
        }
예제 #2
0
        private async Task <bool> ResolveFate()
        {
            if (!FateTimer.IsRunning)
            {
                FateTimer.Restart();
            }

            if (FateTimer.ElapsedMilliseconds < 3000)
            {
                return(false);
            }

            FateTimer.Restart();

            FateData fate;
            var      singleFate = FatebotSettings.Instance.ThisFateOnly;

            if (!string.IsNullOrWhiteSpace(singleFate))
            {
                fate =
                    FateManager.ActiveFates.FirstOrDefault(
                        f => string.Equals(f.Name, singleFate, StringComparison.InvariantCultureIgnoreCase));

                if (fate == null)
                {
                    return(false);
                }

                FateData = fate;
                return(true);
            }

            fate = FateScoreProvider.GetObjectsByWeight(FateManager.ActiveFates).FirstOrDefault(ShouldSelectFate);
            if (fate == null)
            {
                return(false);
            }

            FateData = fate;
            return(true);
        }