// Token: 0x060034E5 RID: 13541 RVA: 0x00121E03 File Offset: 0x00120003 public static IEnumerable <ThingDef> ImpliedCorpseDefs() { foreach (ThingDef thingDef in DefDatabase <ThingDef> .AllDefs.ToList <ThingDef>()) { if (thingDef.category == ThingCategory.Pawn) { ThingDef thingDef2 = new ThingDef(); thingDef2.category = ThingCategory.Item; thingDef2.thingClass = typeof(Corpse); thingDef2.selectable = true; thingDef2.tickerType = TickerType.Rare; thingDef2.altitudeLayer = AltitudeLayer.ItemImportant; thingDef2.scatterableOnMapGen = false; thingDef2.SetStatBaseValue(StatDefOf.Beauty, -50f); thingDef2.SetStatBaseValue(StatDefOf.DeteriorationRate, 1f); thingDef2.SetStatBaseValue(StatDefOf.FoodPoisonChanceFixedHuman, 0.05f); thingDef2.alwaysHaulable = true; thingDef2.soundDrop = SoundDefOf.Corpse_Drop; thingDef2.pathCost = 15; thingDef2.socialPropernessMatters = false; thingDef2.tradeability = Tradeability.None; thingDef2.messageOnDeteriorateInStorage = false; thingDef2.inspectorTabs = new List <Type>(); thingDef2.inspectorTabs.Add(typeof(ITab_Pawn_Health)); thingDef2.inspectorTabs.Add(typeof(ITab_Pawn_Character)); thingDef2.inspectorTabs.Add(typeof(ITab_Pawn_Gear)); thingDef2.inspectorTabs.Add(typeof(ITab_Pawn_Social)); thingDef2.inspectorTabs.Add(typeof(ITab_Pawn_Log)); thingDef2.comps.Add(new CompProperties_Forbiddable()); thingDef2.recipes = new List <RecipeDef>(); if (!thingDef.race.IsMechanoid) { thingDef2.recipes.Add(RecipeDefOf.RemoveBodyPart); } thingDef2.defName = "Corpse_" + thingDef.defName; thingDef2.label = "CorpseLabel".Translate(thingDef.label); thingDef2.description = "CorpseDesc".Translate(thingDef.label); thingDef2.soundImpactDefault = thingDef.soundImpactDefault; thingDef2.SetStatBaseValue(StatDefOf.MarketValue, ThingDefGenerator_Corpses.CalculateMarketValue(thingDef)); thingDef2.SetStatBaseValue(StatDefOf.Flammability, thingDef.GetStatValueAbstract(StatDefOf.Flammability, null)); thingDef2.SetStatBaseValue(StatDefOf.MaxHitPoints, (float)thingDef.BaseMaxHitPoints); thingDef2.SetStatBaseValue(StatDefOf.Mass, thingDef.statBases.GetStatOffsetFromList(StatDefOf.Mass)); thingDef2.SetStatBaseValue(StatDefOf.Nutrition, 5.2f); thingDef2.modContentPack = thingDef.modContentPack; thingDef2.ingestible = new IngestibleProperties(); thingDef2.ingestible.parent = thingDef2; IngestibleProperties ingestible = thingDef2.ingestible; ingestible.foodType = FoodTypeFlags.Corpse; ingestible.sourceDef = thingDef; ingestible.preferability = (thingDef.race.IsFlesh ? FoodPreferability.DesperateOnly : FoodPreferability.NeverForNutrition); DirectXmlCrossRefLoader.RegisterObjectWantsCrossRef(ingestible, "tasteThought", ThoughtDefOf.AteCorpse.defName, null, null); ingestible.maxNumToIngestAtOnce = 1; ingestible.ingestEffect = EffecterDefOf.EatMeat; ingestible.ingestSound = SoundDefOf.RawMeat_Eat; ingestible.specialThoughtDirect = thingDef.race.FleshType.ateDirect; if (thingDef.race.IsFlesh) { CompProperties_Rottable compProperties_Rottable = new CompProperties_Rottable(); compProperties_Rottable.daysToRotStart = 2.5f; compProperties_Rottable.daysToDessicated = 5f; compProperties_Rottable.rotDamagePerDay = 2f; compProperties_Rottable.dessicatedDamagePerDay = 0.7f; thingDef2.comps.Add(compProperties_Rottable); CompProperties_SpawnerFilth compProperties_SpawnerFilth = new CompProperties_SpawnerFilth(); compProperties_SpawnerFilth.filthDef = ThingDefOf.Filth_CorpseBile; compProperties_SpawnerFilth.spawnCountOnSpawn = 0; compProperties_SpawnerFilth.spawnMtbHours = 0f; compProperties_SpawnerFilth.spawnRadius = 0.1f; compProperties_SpawnerFilth.spawnEveryDays = 1f; compProperties_SpawnerFilth.requiredRotStage = new RotStage?(RotStage.Rotting); thingDef2.comps.Add(compProperties_SpawnerFilth); } if (thingDef2.thingCategories == null) { thingDef2.thingCategories = new List <ThingCategoryDef>(); } if (thingDef.race.Humanlike) { DirectXmlCrossRefLoader.RegisterListWantsCrossRef <ThingCategoryDef>(thingDef2.thingCategories, ThingCategoryDefOf.CorpsesHumanlike.defName, thingDef2, null); } else { DirectXmlCrossRefLoader.RegisterListWantsCrossRef <ThingCategoryDef>(thingDef2.thingCategories, thingDef.race.FleshType.corpseCategory.defName, thingDef2, null); } thingDef.race.corpseDef = thingDef2; yield return(thingDef2); } } List <ThingDef> .Enumerator enumerator = default(List <ThingDef> .Enumerator); yield break; yield break; }
public static IEnumerable <ThingDef> ImpliedCorpseDefs() { foreach (ThingDef raceDef in DefDatabase <ThingDef> .AllDefs.ToList <ThingDef>()) { if (raceDef.category == ThingCategory.Pawn) { ThingDef d = new ThingDef(); d.category = ThingCategory.Item; d.thingClass = typeof(Corpse); d.selectable = true; d.tickerType = TickerType.Rare; d.altitudeLayer = AltitudeLayer.ItemImportant; d.scatterableOnMapGen = false; d.SetStatBaseValue(StatDefOf.Beauty, -150f); d.SetStatBaseValue(StatDefOf.DeteriorationRate, 2f); d.alwaysHaulable = true; d.soundDrop = SoundDef.Named("Corpse_Drop"); d.pathCost = 15; d.socialPropernessMatters = false; d.tradeability = Tradeability.Never; d.inspectorTabs = new List <Type>(); d.inspectorTabs.Add(typeof(ITab_Pawn_Health)); d.inspectorTabs.Add(typeof(ITab_Pawn_Character)); d.inspectorTabs.Add(typeof(ITab_Pawn_Gear)); d.inspectorTabs.Add(typeof(ITab_Pawn_Social)); d.inspectorTabs.Add(typeof(ITab_Pawn_Combat)); d.comps.Add(new CompProperties_Forbiddable()); d.recipes = new List <RecipeDef>(); if (raceDef.race.IsMechanoid) { d.recipes.Add(RecipeDefOf.RemoveMechanoidBodyPart); } else { d.recipes.Add(RecipeDefOf.RemoveBodyPart); } d.defName = raceDef.defName + "_Corpse"; d.label = "CorpseLabel".Translate(new object[] { raceDef.label }); d.description = "CorpseDesc".Translate(new object[] { raceDef.label }); d.soundImpactDefault = raceDef.soundImpactDefault; d.SetStatBaseValue(StatDefOf.Flammability, raceDef.GetStatValueAbstract(StatDefOf.Flammability, null)); d.SetStatBaseValue(StatDefOf.MaxHitPoints, (float)raceDef.BaseMaxHitPoints); d.SetStatBaseValue(StatDefOf.Mass, raceDef.statBases.GetStatOffsetFromList(StatDefOf.Mass)); d.ingestible = new IngestibleProperties(); IngestibleProperties ing = d.ingestible; ing.foodType = FoodTypeFlags.Corpse; ing.sourceDef = raceDef; ing.preferability = FoodPreferability.DesperateOnly; DirectXmlCrossRefLoader.RegisterObjectWantsCrossRef(ing, "tasteThought", ThoughtDefOf.AteCorpse.defName); ing.nutrition = 1f; ing.maxNumToIngestAtOnce = 1; ing.ingestEffect = EffecterDefOf.EatMeat; ing.ingestSound = SoundDefOf.RawMeat_Eat; ing.specialThoughtDirect = raceDef.race.FleshType.ateDirect; if (raceDef.race.IsFlesh) { CompProperties_Rottable compProperties_Rottable = new CompProperties_Rottable(); compProperties_Rottable.daysToRotStart = 2.5f; compProperties_Rottable.daysToDessicated = 5f; compProperties_Rottable.rotDamagePerDay = 2f; compProperties_Rottable.dessicatedDamagePerDay = 0.7f; d.comps.Add(compProperties_Rottable); CompProperties_SpawnerFilth compProperties_SpawnerFilth = new CompProperties_SpawnerFilth(); compProperties_SpawnerFilth.filthDef = ThingDefOf.FilthCorpseBile; compProperties_SpawnerFilth.spawnCountOnSpawn = 0; compProperties_SpawnerFilth.spawnMtbHours = 0f; compProperties_SpawnerFilth.spawnRadius = 0.1f; compProperties_SpawnerFilth.spawnEveryDays = 1f; compProperties_SpawnerFilth.requiredRotStage = new RotStage?(RotStage.Rotting); d.comps.Add(compProperties_SpawnerFilth); } if (d.thingCategories == null) { d.thingCategories = new List <ThingCategoryDef>(); } if (raceDef.race.Humanlike) { DirectXmlCrossRefLoader.RegisterListWantsCrossRef <ThingCategoryDef>(d.thingCategories, ThingCategoryDefOf.CorpsesHumanlike.defName); } else { DirectXmlCrossRefLoader.RegisterListWantsCrossRef <ThingCategoryDef>(d.thingCategories, raceDef.race.FleshType.corpseCategory.defName); } raceDef.race.corpseDef = d; yield return(d); } } }
public bool MoveNext() { uint num = (uint)this.$PC; this.$PC = -1; bool flag = false; switch (num) { case 0u: enumerator = DefDatabase <ThingDef> .AllDefs.ToList <ThingDef>().GetEnumerator(); num = 4294967293u; break; case 1u: break; default: return(false); } try { switch (num) { } while (enumerator.MoveNext()) { raceDef = enumerator.Current; if (raceDef.category == ThingCategory.Pawn) { d = new ThingDef(); d.category = ThingCategory.Item; d.thingClass = typeof(Corpse); d.selectable = true; d.tickerType = TickerType.Rare; d.altitudeLayer = AltitudeLayer.ItemImportant; d.scatterableOnMapGen = false; d.SetStatBaseValue(StatDefOf.Beauty, -50f); d.SetStatBaseValue(StatDefOf.DeteriorationRate, 1f); d.SetStatBaseValue(StatDefOf.FoodPoisonChanceFixedHuman, 0.05f); d.alwaysHaulable = true; d.soundDrop = SoundDefOf.Corpse_Drop; d.pathCost = 15; d.socialPropernessMatters = false; d.tradeability = Tradeability.None; d.inspectorTabs = new List <Type>(); d.inspectorTabs.Add(typeof(ITab_Pawn_Health)); d.inspectorTabs.Add(typeof(ITab_Pawn_Character)); d.inspectorTabs.Add(typeof(ITab_Pawn_Gear)); d.inspectorTabs.Add(typeof(ITab_Pawn_Social)); d.inspectorTabs.Add(typeof(ITab_Pawn_Log)); d.comps.Add(new CompProperties_Forbiddable()); d.recipes = new List <RecipeDef>(); if (!raceDef.race.IsMechanoid) { d.recipes.Add(RecipeDefOf.RemoveBodyPart); } d.defName = "Corpse_" + raceDef.defName; d.label = "CorpseLabel".Translate(new object[] { raceDef.label }); d.description = "CorpseDesc".Translate(new object[] { raceDef.label }); d.soundImpactDefault = raceDef.soundImpactDefault; d.SetStatBaseValue(StatDefOf.MarketValue, ThingDefGenerator_Corpses.CalculateMarketValue(raceDef)); d.SetStatBaseValue(StatDefOf.Flammability, raceDef.GetStatValueAbstract(StatDefOf.Flammability, null)); d.SetStatBaseValue(StatDefOf.MaxHitPoints, (float)raceDef.BaseMaxHitPoints); d.SetStatBaseValue(StatDefOf.Mass, raceDef.statBases.GetStatOffsetFromList(StatDefOf.Mass)); d.SetStatBaseValue(StatDefOf.Nutrition, 5.2f); d.modContentPack = raceDef.modContentPack; d.ingestible = new IngestibleProperties(); d.ingestible.parent = d; ing = d.ingestible; ing.foodType = FoodTypeFlags.Corpse; ing.sourceDef = raceDef; ing.preferability = ((!raceDef.race.IsFlesh) ? FoodPreferability.NeverForNutrition : FoodPreferability.DesperateOnly); DirectXmlCrossRefLoader.RegisterObjectWantsCrossRef(ing, "tasteThought", ThoughtDefOf.AteCorpse.defName); ing.maxNumToIngestAtOnce = 1; ing.ingestEffect = EffecterDefOf.EatMeat; ing.ingestSound = SoundDefOf.RawMeat_Eat; ing.specialThoughtDirect = raceDef.race.FleshType.ateDirect; if (raceDef.race.IsFlesh) { CompProperties_Rottable compProperties_Rottable = new CompProperties_Rottable(); compProperties_Rottable.daysToRotStart = 2.5f; compProperties_Rottable.daysToDessicated = 5f; compProperties_Rottable.rotDamagePerDay = 2f; compProperties_Rottable.dessicatedDamagePerDay = 0.7f; d.comps.Add(compProperties_Rottable); CompProperties_SpawnerFilth compProperties_SpawnerFilth = new CompProperties_SpawnerFilth(); compProperties_SpawnerFilth.filthDef = ThingDefOf.Filth_CorpseBile; compProperties_SpawnerFilth.spawnCountOnSpawn = 0; compProperties_SpawnerFilth.spawnMtbHours = 0f; compProperties_SpawnerFilth.spawnRadius = 0.1f; compProperties_SpawnerFilth.spawnEveryDays = 1f; compProperties_SpawnerFilth.requiredRotStage = new RotStage?(RotStage.Rotting); d.comps.Add(compProperties_SpawnerFilth); } if (d.thingCategories == null) { d.thingCategories = new List <ThingCategoryDef>(); } if (raceDef.race.Humanlike) { DirectXmlCrossRefLoader.RegisterListWantsCrossRef <ThingCategoryDef>(d.thingCategories, ThingCategoryDefOf.CorpsesHumanlike.defName, d); } else { DirectXmlCrossRefLoader.RegisterListWantsCrossRef <ThingCategoryDef>(d.thingCategories, raceDef.race.FleshType.corpseCategory.defName, d); } raceDef.race.corpseDef = d; this.$current = d; if (!this.$disposing) { this.$PC = 1; } flag = true; return(true); } } } finally { if (!flag) { ((IDisposable)enumerator).Dispose(); } } this.$PC = -1; return(false); }
public static IEnumerable <ThingDef> ImpliedCorpseDefs() { foreach (ThingDef item in DefDatabase <ThingDef> .AllDefs.ToList()) { if (item.category == ThingCategory.Pawn) { ThingDef d = new ThingDef { category = ThingCategory.Item, thingClass = typeof(Corpse), selectable = true, tickerType = TickerType.Rare, altitudeLayer = AltitudeLayer.ItemImportant, scatterableOnMapGen = false }; d.SetStatBaseValue(StatDefOf.Beauty, -50f); d.SetStatBaseValue(StatDefOf.DeteriorationRate, 1f); d.SetStatBaseValue(StatDefOf.FoodPoisonChanceFixedHuman, 0.05f); d.alwaysHaulable = true; d.soundDrop = SoundDefOf.Corpse_Drop; d.pathCost = 15; d.socialPropernessMatters = false; d.tradeability = Tradeability.None; d.inspectorTabs = new List <Type>(); d.inspectorTabs.Add(typeof(ITab_Pawn_Health)); d.inspectorTabs.Add(typeof(ITab_Pawn_Character)); d.inspectorTabs.Add(typeof(ITab_Pawn_Gear)); d.inspectorTabs.Add(typeof(ITab_Pawn_Social)); d.inspectorTabs.Add(typeof(ITab_Pawn_Log)); d.comps.Add(new CompProperties_Forbiddable()); d.recipes = new List <RecipeDef>(); if (!item.race.IsMechanoid) { d.recipes.Add(RecipeDefOf.RemoveBodyPart); } d.defName = "Corpse_" + item.defName; d.label = "CorpseLabel".Translate(item.label); d.description = "CorpseDesc".Translate(item.label); d.soundImpactDefault = item.soundImpactDefault; d.SetStatBaseValue(StatDefOf.MarketValue, CalculateMarketValue(item)); d.SetStatBaseValue(StatDefOf.Flammability, item.GetStatValueAbstract(StatDefOf.Flammability)); d.SetStatBaseValue(StatDefOf.MaxHitPoints, (float)item.BaseMaxHitPoints); d.SetStatBaseValue(StatDefOf.Mass, item.statBases.GetStatOffsetFromList(StatDefOf.Mass)); d.SetStatBaseValue(StatDefOf.Nutrition, 5.2f); d.modContentPack = item.modContentPack; d.ingestible = new IngestibleProperties(); d.ingestible.parent = d; IngestibleProperties ing = d.ingestible; ing.foodType = FoodTypeFlags.Corpse; ing.sourceDef = item; ing.preferability = ((!item.race.IsFlesh) ? FoodPreferability.NeverForNutrition : FoodPreferability.DesperateOnly); DirectXmlCrossRefLoader.RegisterObjectWantsCrossRef(ing, "tasteThought", ThoughtDefOf.AteCorpse.defName); ing.maxNumToIngestAtOnce = 1; ing.ingestEffect = EffecterDefOf.EatMeat; ing.ingestSound = SoundDefOf.RawMeat_Eat; ing.specialThoughtDirect = item.race.FleshType.ateDirect; if (item.race.IsFlesh) { CompProperties_Rottable compProperties_Rottable = new CompProperties_Rottable(); compProperties_Rottable.daysToRotStart = 2.5f; compProperties_Rottable.daysToDessicated = 5f; compProperties_Rottable.rotDamagePerDay = 2f; compProperties_Rottable.dessicatedDamagePerDay = 0.7f; d.comps.Add(compProperties_Rottable); CompProperties_SpawnerFilth compProperties_SpawnerFilth = new CompProperties_SpawnerFilth(); compProperties_SpawnerFilth.filthDef = ThingDefOf.Filth_CorpseBile; compProperties_SpawnerFilth.spawnCountOnSpawn = 0; compProperties_SpawnerFilth.spawnMtbHours = 0f; compProperties_SpawnerFilth.spawnRadius = 0.1f; compProperties_SpawnerFilth.spawnEveryDays = 1f; compProperties_SpawnerFilth.requiredRotStage = RotStage.Rotting; d.comps.Add(compProperties_SpawnerFilth); } if (d.thingCategories == null) { d.thingCategories = new List <ThingCategoryDef>(); } if (item.race.Humanlike) { DirectXmlCrossRefLoader.RegisterListWantsCrossRef(d.thingCategories, ThingCategoryDefOf.CorpsesHumanlike.defName, d); } else { DirectXmlCrossRefLoader.RegisterListWantsCrossRef(d.thingCategories, item.race.FleshType.corpseCategory.defName, d); } item.race.corpseDef = d; yield return(d); /*Error: Unable to find new state assignment for yield return*/; } } yield break; IL_05de: /*Error near IL_05df: Unexpected return in MoveNext()*/; }