コード例 #1
0
 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);
     }
 }
コード例 #2
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);
        }