public void setDiseaseBySeason(Season season, Quadrum quadrum) { List <BiomeDiseaseRecord> seasonalDiseases = new List <BiomeDiseaseRecord>(); if (Season.Spring == season && this.springDiseases != null) { seasonalDiseases = this.springDiseases; } else if (Season.Summer == season && this.summerDiseases != null) { seasonalDiseases = this.summerDiseases; } else if (Season.Fall == season && this.fallDiseases != null) { seasonalDiseases = this.fallDiseases; } else if (Season.Winter == season && this.winterDiseases != null) { seasonalDiseases = this.winterDiseases; } else { if (Quadrum.Aprimay == quadrum && this.springDiseases != null) { seasonalDiseases = this.springDiseases; } else if (Quadrum.Decembary == quadrum && this.winterDiseases != null) { seasonalDiseases = this.winterDiseases; } else if (Quadrum.Jugust == quadrum && this.summerDiseases != null) { seasonalDiseases = this.summerDiseases; } else if (Quadrum.Septober == quadrum && this.fallDiseases != null) { seasonalDiseases = this.fallDiseases; } } for (int i = 0; i < seasonalDiseases.Count; i++) { BiomeDiseaseRecord diseaseRec = seasonalDiseases[i]; IncidentDef disease = diseaseRec.diseaseInc; disease.baseChance = diseaseRec.commonality; } diseaseCacheUpdated = false; }
public BiomeWidget(BiomeDef d, DefType type) : base(d, type) { if (base.Def.baseWeatherCommonalities == null) { base.Def.baseWeatherCommonalities = new List <WeatherCommonalityRecord>(); } if (base.Def.terrainsByFertility == null) { base.Def.terrainsByFertility = new List <TerrainThreshold>(); } if (base.Def.soundsAmbient == null) { base.Def.soundsAmbient = new List <SoundDef>(); } if (base.Def.terrainPatchMakers == null) { base.Def.terrainPatchMakers = new List <TerrainPatchMaker>(); } if (BiomeDefStats.GetWildAnimals(base.Def) == null) { BiomeDefStats.SetWildAnimals(base.Def, new List <BiomeAnimalRecord>()); } if (BiomeDefStats.GetWildPlants(base.Def) == null) { BiomeDefStats.SetWildPlants(base.Def, new List <BiomePlantRecord>()); } if (BiomeDefStats.GetDiseases(base.Def) == null) { BiomeDefStats.SetDiseases(base.Def, new List <BiomeDiseaseRecord>()); } if (BiomeDefStats.GetAllowedPackAnimals(base.Def) == null) { BiomeDefStats.SetAllowedPackAnimals(base.Def, new List <ThingDef>()); } this.inputWidgets = new List <IInputWidget>() { new BoolInputWidget <BiomeDef>(base.Def, "Can Build Base", (BiomeDef def) => def.canBuildBase, (BiomeDef def, bool b) => def.canBuildBase = b), new BoolInputWidget <BiomeDef>(base.Def, "Can Auto Choose", (BiomeDef def) => def.canAutoChoose, (BiomeDef def, bool b) => def.canAutoChoose = b), new BoolInputWidget <BiomeDef>(base.Def, "Allow Roads", (BiomeDef def) => def.allowRoads, (BiomeDef def, bool b) => def.allowRoads = b), new BoolInputWidget <BiomeDef>(base.Def, "Allow Rivers", (BiomeDef def) => def.allowRivers, (BiomeDef def, bool b) => def.allowRivers = b), new FloatInputWidget <BiomeDef>(base.Def, "Animal Density", (BiomeDef def) => def.animalDensity, (BiomeDef def, float f) => def.animalDensity = f), new FloatInputWidget <BiomeDef>(base.Def, "Plant Density", (BiomeDef def) => def.plantDensity, (BiomeDef def, float f) => def.plantDensity = f), new FloatInputWidget <BiomeDef>(base.Def, "Disease Mtb Days", (BiomeDef def) => def.diseaseMtbDays, (BiomeDef def, float f) => def.diseaseMtbDays = f), new FloatInputWidget <BiomeDef>(base.Def, "Settlement Selection Weight", (BiomeDef def) => def.settlementSelectionWeight, (BiomeDef def, float f) => def.settlementSelectionWeight = f), new BoolInputWidget <BiomeDef>(base.Def, "Impassable", (BiomeDef def) => def.impassable, (BiomeDef def, bool b) => def.impassable = b), new BoolInputWidget <BiomeDef>(base.Def, "Has Virtual Plants", (BiomeDef def) => def.hasVirtualPlants, (BiomeDef def, bool b) => def.hasVirtualPlants = b), new FloatInputWidget <BiomeDef>(base.Def, "Forageability", (BiomeDef def) => def.forageability, (BiomeDef def, float f) => def.forageability = f), new BoolInputWidget <BiomeDef>(base.Def, "Local Plants Care Fertability", (BiomeDef def) => def.wildPlantsCareAboutLocalFertility, (BiomeDef def, bool b) => def.wildPlantsCareAboutLocalFertility = b), new FloatInputWidget <BiomeDef>(base.Def, "Wild Plant Regrow Days", (BiomeDef def) => def.wildPlantRegrowDays, (BiomeDef def, float f) => def.wildPlantRegrowDays = f), new FloatInputWidget <BiomeDef>(base.Def, "Movement Difficulty", (BiomeDef def) => def.movementDifficulty, (BiomeDef def, float f) => def.movementDifficulty = f), new BoolInputWidget <BiomeDef>(base.Def, "Has Bedrock", (BiomeDef def) => def.hasBedrock, (BiomeDef def, bool b) => def.hasBedrock = b) }; this.weatherPlusMinusArgs = new PlusMinusArgs <WeatherDef>() { allItems = DefDatabase <WeatherDef> .AllDefs, beingUsed = () => Util.ConvertItems(this.weatherCommonalityRecords, (FloatInputWidget <WeatherCommonalityRecord> w) => w.Parent.weather), onAdd = delegate(WeatherDef wd) { WeatherCommonalityRecord rec = new WeatherCommonalityRecord() { weather = wd }; this.weatherCommonalityRecords.Add(this.CreateWeatherWidget(rec)); base.Def.baseWeatherCommonalities.Add(rec); }, onRemove = delegate(WeatherDef wd) { this.weatherCommonalityRecords.RemoveAll((FloatInputWidget <WeatherCommonalityRecord> w) => w.Parent.weather == wd); base.Def.baseWeatherCommonalities.RemoveAll((WeatherCommonalityRecord rec) => rec.weather == wd); }, getDisplayName = (WeatherDef def) => def.label, }; this.terrainFertilityPlusMinusArgs = new PlusMinusArgs <TerrainDef>() { allItems = DefDatabase <TerrainDef> .AllDefs, beingUsed = () => Util.ConvertItems(this.terrainsByFertility, (MinMaxInputWidget <TerrainThreshold, float> w) => w.Parent.terrain), onAdd = delegate(TerrainDef td) { TerrainThreshold tt = new TerrainThreshold() { terrain = td }; this.terrainsByFertility.Add(this.CreateThresholdWidget(tt)); this.Def.terrainsByFertility.Add(tt); }, onRemove = delegate(TerrainDef td) { this.terrainsByFertility.RemoveAll((MinMaxInputWidget <TerrainThreshold, float> w) => w.Parent.terrain == td); base.Def.terrainsByFertility.RemoveAll((TerrainThreshold tt) => tt.terrain == td); }, getDisplayName = (TerrainDef def) => def.label, }; this.ambientSoundPlusMinusArgs = new PlusMinusArgs <SoundDef>() { allItems = DefDatabase <SoundDef> .AllDefs, beingUsed = () => this.soundsAmbient, onAdd = delegate(SoundDef sd) { this.soundsAmbient.Add(sd); this.Def.soundsAmbient.Add(sd); }, onRemove = delegate(SoundDef sd) { this.soundsAmbient.Remove(sd); this.Def.soundsAmbient.Remove(sd); }, getDisplayName = (SoundDef sd) => sd.defName }; this.diseasesPlusMinusArgs = new PlusMinusArgs <IncidentDef>() { allItems = Util.FindAll(DefDatabase <IncidentDef> .AllDefs, id => id.defName.StartsWith("Disease_")), beingUsed = () => Util.ConvertItems(this.diseases, (FloatInputWidget <BiomeDiseaseRecord> w) => w.Parent.diseaseInc), onAdd = delegate(IncidentDef id) { BiomeDiseaseRecord r = new BiomeDiseaseRecord() { diseaseInc = id, commonality = 0 }; this.diseases.Add(this.CreateDiseaseWidget(r)); BiomeDefStats.GetDiseases(this.Def).Add(r); }, onRemove = delegate(IncidentDef id) { this.diseases.RemoveAll((FloatInputWidget <BiomeDiseaseRecord> w) => w.Parent.diseaseInc == id); BiomeDefStats.GetDiseases(this.Def).RemoveAll((BiomeDiseaseRecord rec) => rec.diseaseInc == id); }, getDisplayName = (IncidentDef def) => def.label, }; this.wildPlantPlusMinusArgs = new PlusMinusArgs <ThingDef>() { allItems = Util.FindAll(DefDatabase <ThingDef> .AllDefs, td => td.plant != null), beingUsed = () => Util.ConvertItems(this.wildPlants, (FloatInputWidget <BiomePlantRecord> w) => w.Parent.plant), onAdd = delegate(ThingDef td) { BiomePlantRecord r = new BiomePlantRecord() { plant = td, commonality = 0 }; this.wildPlants.Add(this.CreateWildPlantWidget(r)); BiomeDefStats.GetWildPlants(this.Def).Add(r); }, onRemove = delegate(ThingDef td) { this.wildPlants.RemoveAll((FloatInputWidget <BiomePlantRecord> w) => w.Parent.plant == td); BiomeDefStats.GetWildPlants(this.Def).RemoveAll((BiomePlantRecord rec) => rec.plant == td); }, getDisplayName = (ThingDef def) => def.label, }; this.wildAnimalPlusMinusArgs = new PlusMinusArgs <PawnKindDef>() { allItems = Util.FindAll(DefDatabase <PawnKindDef> .AllDefs, pdk => pdk.race.race.thinkTreeMain.defName.Equals("Animal")), beingUsed = () => Util.ConvertItems(this.wildAnimals, (FloatInputWidget <BiomeAnimalRecord> w) => w.Parent.animal), onAdd = delegate(PawnKindDef td) { BiomeAnimalRecord r = new BiomeAnimalRecord() { animal = td, commonality = 0 }; this.wildAnimals.Add(this.CreateWildAnimalWidget(r)); BiomeDefStats.GetWildAnimals(this.Def).Add(r); }, onRemove = delegate(PawnKindDef td) { this.wildAnimals.RemoveAll((FloatInputWidget <BiomeAnimalRecord> w) => w.Parent.animal == td); BiomeDefStats.GetWildAnimals(this.Def).RemoveAll((BiomeAnimalRecord rec) => rec.animal == td); }, getDisplayName = (PawnKindDef def) => def.label, }; this.allowedPackAnimalsPlusMinusArgs = new PlusMinusArgs <ThingDef>() { allItems = Util.FindAll(DefDatabase <ThingDef> .AllDefs, td => td.race != null && td.race.herdAnimal), beingUsed = () => this.allowedPackAnimals, onAdd = delegate(ThingDef td) { this.allowedPackAnimals.Add(td); BiomeDefStats.GetAllowedPackAnimals(base.Def).Add(td); }, onRemove = delegate(ThingDef td) { this.allowedPackAnimals.Remove(td); BiomeDefStats.GetAllowedPackAnimals(base.Def).Remove(td); }, getDisplayName = (ThingDef def) => def.label, }; this.Rebuild(); }