예제 #1
0
        public static int FindNextGarrisonSize(int initial, int attacks, GrowthStyle growthStyle)
        {
            if (growthStyle.HasFlag(GrowthStyle.Moderate)) {
                attacks *= 2;
            } else if (growthStyle.HasFlag(GrowthStyle.Fast)) {
                attacks *= 3;
            }

            switch ((GrowthStyle) ((int) growthStyle & 0x3)) {
                case GrowthStyle.Logarithmic:
                    return initial + (int) Math.Round(initial * Math.Log(attacks + 1, 2.0) * 0.25);
                case GrowthStyle.Linear:
                    return initial + (int) Math.Round(initial * attacks * 0.25);
                case GrowthStyle.Quadratic:
                    return initial + (int) Math.Round(initial * Math.Pow(attacks, 1.3) * 0.25);
                default:
                    return initial;
            }
        }
예제 #2
0
 public static int FindNextAttackDelay(int initial, int attacks, GrowthStyle growthStyle)
 {
     return FindNextGarrisonSize(initial, attacks, growthStyle) * 2 * 60;
 }