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); }
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); }