public float getRateOfChange() { float result; if (ModUtils.AlmostZero(hourlyChange)) { result = 0; } else if (hourlyBaseline > 0) { result = Mathf.Min(hourlyChange / hourlyBaseline, 1) + Mathf.Max(0, hourlyChange - hourlyBaseline) * scale; } else { result = hourlyChange * scale; } return(result); }