public int BaseQuality(int control, int crafterLevel) { CraftLevelDifference diff = GetCraftLevelDifference(crafterLevel); if (diff == null) { throw new ArgumentException("Invalid crafter level / recipe level difference", "crafterLevel"); } return((control + 10000) / (RecipeLevelTable.SuggestedControl + 10000) * ((control * 35) / 100 + 35) * diff.QualityFactor / 100); }
public int BaseProgress(int craftsmanship, int crafterLevel) { CraftLevelDifference diff = GetCraftLevelDifference(crafterLevel); if (diff == null) { throw new ArgumentException("Invalid crafter level / recipe level difference", "crafterLevel"); } return((craftsmanship + 10000) / (RecipeLevelTable.SuggestedCraftsmanship + 10000) * ((craftsmanship * 21) / 100 + 2) * diff.ProgressFactor / 100); }