Пример #1
0
        private float GetHasteWithProcs(StatExtractor statExtractor)
        {
            Dictionary <int, float> periods = new Dictionary <int, float>();
            Dictionary <int, float> chances = new Dictionary <int, float>();

            periods.Add((int)Trigger.Use, 0f);
            chances.Add((int)Trigger.Use, 1f);
            WeightedStat[] hasteProcs
                = Mommy.GetUptimes(
                      Stats,
                      periods,
                      chances,
                      statExtractor,
                      (a, b, c, d, e, f, g, h)
                      => SpecialEffect
                      .GetAverageCombinedUptimeCombinationsMultiplicative(
                          a, b, c, d, e, f, g, h));
            float avgProcHaste = 0f;

            foreach (WeightedStat proc in hasteProcs)
            {
                avgProcHaste += proc.Chance * proc.Value;
            }
            return((1f + statExtractor(Stats)) * (1f + avgProcHaste) - 1f);
        }