protected void InitializeElemExposureArray(ref ElemExposureInfo[] infoArray, ElemExposureInfo default_value) { List <Element> elements = ElementLoader.elements; infoArray = new ElemExposureInfo[elements.Count]; for (int i = 0; i < elements.Count; i++) { infoArray[i] = default_value; } }
public static float CalculateDelta(int disease_count, int element_idx, float mass, int environment_cell, float temperature, float tags_multiplier_base, Disease disease, float dt) { float num = 0f; ElemGrowthInfo elemGrowthInfo = disease.elemGrowthInfo[element_idx]; num += elemGrowthInfo.CalculateDiseaseCountDelta(disease_count, mass, dt); float half_life_in_seconds = Disease.CalculateRangeHalfLife(temperature, ref disease.temperatureRange, ref disease.temperatureHalfLives); float num2 = Disease.HalfLifeToGrowthRate(half_life_in_seconds, dt); num += (float)disease_count * num2 - (float)disease_count; float num3 = Mathf.Pow(tags_multiplier_base, dt); num += (float)disease_count * num3 - (float)disease_count; if (Grid.IsValidCell(environment_cell)) { byte b = Grid.ElementIdx[environment_cell]; ElemExposureInfo elemExposureInfo = disease.elemExposureInfo[b]; num += elemExposureInfo.CalculateExposureDiseaseCountDelta(disease_count, dt); } return(num); }