public static QualityCategory GenerateQualityCreatedByPawn(int relevantSkillLevel, bool inspired)
        {
            float num = 0f;

            switch (relevantSkillLevel)
            {
            case 0:
                num += 0.7f;
                break;

            case 1:
                num += 1.1f;
                break;

            case 2:
                num += 1.5f;
                break;

            case 3:
                num += 1.8f;
                break;

            case 4:
                num += 2f;
                break;

            case 5:
                num += 2.2f;
                break;

            case 6:
                num += 2.4f;
                break;

            case 7:
                num += 2.6f;
                break;

            case 8:
                num += 2.8f;
                break;

            case 9:
                num += 2.95f;
                break;

            case 10:
                num += 3.1f;
                break;

            case 11:
                num += 3.25f;
                break;

            case 12:
                num += 3.4f;
                break;

            case 13:
                num += 3.5f;
                break;

            case 14:
                num += 3.6f;
                break;

            case 15:
                num += 3.7f;
                break;

            case 16:
                num += 3.8f;
                break;

            case 17:
                num += 3.9f;
                break;

            case 18:
                num += 4f;
                break;

            case 19:
                num += 4.1f;
                break;

            case 20:
                num += 4.2f;
                break;
            }
            int num2 = (int)Rand.GaussianAsymmetric(num, 0.6f, 0.8f);

            num2 = Mathf.Clamp(num2, 0, 5);
            if (num2 == 5 && Rand.Value < 0.5f)
            {
                num2 = (int)Rand.GaussianAsymmetric(num, 0.6f, 0.95f);
                num2 = Mathf.Clamp(num2, 0, 5);
            }
            QualityCategory qualityCategory = (QualityCategory)num2;

            if (inspired)
            {
                qualityCategory = QualityUtility.AddLevels(qualityCategory, 2);
            }
            return(qualityCategory);
        }
Ejemplo n.º 2
0
        public static QualityCategory GenerateQualityCreatedByPawn(int relevantSkillLevel, bool inspired)
        {
            float centerX = -1f;

            switch (relevantSkillLevel)
            {
            case 0:
                centerX = 0.5f;
                break;

            case 1:
                centerX = 0.833f;
                break;

            case 2:
                centerX = 1.166f;
                break;

            case 3:
                centerX = 1.5f;
                break;

            case 4:
                centerX = 1.7f;
                break;

            case 5:
                centerX = 1.9f;
                break;

            case 6:
                centerX = 2.1f;
                break;

            case 7:
                centerX = 2.3f;
                break;

            case 8:
                centerX = 2.5f;
                break;

            case 9:
                centerX = 2.65f;
                break;

            case 10:
                centerX = 2.8f;
                break;

            case 11:
                centerX = 2.95f;
                break;

            case 12:
                centerX = 3.1f;
                break;

            case 13:
                centerX = 3.25f;
                break;

            case 14:
                centerX = 3.4f;
                break;

            case 15:
                centerX = 3.5f;
                break;

            case 16:
                centerX = 3.6f;
                break;

            case 17:
                centerX = 3.7f;
                break;

            case 18:
                centerX = 3.8f;
                break;

            case 19:
                centerX = 3.9f;
                break;

            case 20:
                centerX = 4f;
                break;
            }
            int num = (int)Rand.GaussianAsymmetric(centerX, 0.7f, 0.96f);

            num = Mathf.Clamp(num, 0, 5);
            if (num == 5 && Rand.Value < 0.5f)
            {
                num = (int)Rand.GaussianAsymmetric(centerX, 0.6f, 0.95f);
                num = Mathf.Clamp(num, 0, 5);
            }
            QualityCategory qualityCategory = (QualityCategory)num;

            if (inspired)
            {
                qualityCategory = QualityUtility.AddLevels(qualityCategory, 2);
            }
            return(qualityCategory);
        }