private int GetMalusForEnvironment(EnvironmentTolerance tolerance, int starValue, int maxMalus) { if (starValue > tolerance.MaximumValue) { return(Math.Min(maxMalus, starValue - tolerance.MaximumValue)); } else if (starValue < tolerance.MinimumValue) { return(Math.Min(maxMalus, tolerance.MinimumValue - starValue)); } else { return(0); } }
/// <summary> /// Clicks_from_center / Total_clicks_from_center_to_edge . /// </summary> /// <param name="tol"></param> /// <param name="starValue"></param> /// <returns></returns> private double NormalizeHabitalityDistance(EnvironmentTolerance tol, int starValue) { if (tol.Immune) { return(0.0); } int minv = tol.MinimumValue; int maxv = tol.MaximumValue; int span = Math.Abs(maxv - minv); double totalClicksFromCenterToEdge = span / 2; double centre = minv + totalClicksFromCenterToEdge; double clicksFromCenter = Math.Abs(centre - starValue); return(clicksFromCenter / totalClicksFromCenterToEdge); }