public override IEnumerable <string> ConfigErrors(HediffDef parentDef) { foreach (string err in base.ConfigErrors(parentDef)) { yield return(err); } if (this.tools != null) { Tool dupeTool = this.tools.SelectMany(delegate(Tool lhs) { HediffCompProperties_VerbGiver $this = this.$this; return(from rhs in this.$this.tools where lhs != rhs && lhs.id == rhs.id select rhs); }).FirstOrDefault <Tool>(); if (dupeTool != null) { yield return(string.Format("duplicate hediff tool id {0}", dupeTool.id)); } foreach (Tool t in this.tools) { foreach (string e in t.ConfigErrors()) { yield return(e); } } } }
public override IEnumerable <string> ConfigErrors(HediffDef parentDef) { using (IEnumerator <string> enumerator = base.ConfigErrors(parentDef).GetEnumerator()) { if (enumerator.MoveNext()) { string err = enumerator.Current; yield return(err); /*Error: Unable to find new state assignment for yield return*/; } } if (this.tools == null) { yield break; } Tool dupeTool = this.tools.SelectMany(delegate(Tool lhs) { HediffCompProperties_VerbGiver _0024this = ((_003CConfigErrors_003Ec__Iterator0) /*Error near IL_00d6: stateMachine*/)._0024this; return(from rhs in ((_003CConfigErrors_003Ec__Iterator0) /*Error near IL_00d6: stateMachine*/)._0024this.tools where lhs != rhs && lhs.label == rhs.label select rhs); }).FirstOrDefault(); if (dupeTool == null) { yield break; } yield return(string.Format("duplicate hediff tool id {0}", dupeTool.Id)); /*Error: Unable to find new state assignment for yield return*/; IL_0134: /*Error near IL_0135: Unexpected return in MoveNext()*/; }
public override IEnumerable <string> ConfigErrors(HediffDef parentDef) { using (IEnumerator <string> enumerator = base.ConfigErrors(parentDef).GetEnumerator()) { if (enumerator.MoveNext()) { string err = enumerator.Current; yield return(err); /*Error: Unable to find new state assignment for yield return*/; } } if (tools != null) { Tool dupeTool = tools.SelectMany(delegate(Tool lhs) { HediffCompProperties_VerbGiver _0024this = ((_003CConfigErrors_003Ec__Iterator0) /*Error near IL_00da: stateMachine*/)._0024this; return(from rhs in ((_003CConfigErrors_003Ec__Iterator0) /*Error near IL_00da: stateMachine*/)._0024this.tools where lhs != rhs && lhs.id == rhs.id select rhs); }).FirstOrDefault(); if (dupeTool != null) { yield return($"duplicate hediff tool id {dupeTool.id}"); /*Error: Unable to find new state assignment for yield return*/; } foreach (Tool tool in tools) { using (IEnumerator <string> enumerator3 = tool.ConfigErrors().GetEnumerator()) { if (enumerator3.MoveNext()) { string e = enumerator3.Current; yield return(e); /*Error: Unable to find new state assignment for yield return*/; } } } } yield break; IL_022b: /*Error near IL_022c: Unexpected return in MoveNext()*/; }
public override IEnumerable <StatDrawEntry> SpecialDisplayStats() { if (this.apparel != null) { string coveredParts = this.apparel.GetCoveredOuterPartsString(BodyDefOf.Human); yield return(new StatDrawEntry(StatCategoryDefOf.Apparel, "Covers".Translate(), coveredParts, 100, string.Empty)); } if (this.IsMedicine && this.MedicineTendXpGainFactor != 1f) { yield return(new StatDrawEntry(StatCategoryDefOf.Basics, "MedicineXpGainFactor".Translate(), this.MedicineTendXpGainFactor.ToStringPercent(), 0, string.Empty)); } if (this.fillPercent > 0f && this.fillPercent < 1f && (this.category == ThingCategory.Item || this.category == ThingCategory.Building || this.category == ThingCategory.Plant)) { yield return(new StatDrawEntry(StatCategoryDefOf.Basics, "CoverEffectiveness".Translate(), this.BaseBlockChance().ToStringPercent(), 0, string.Empty) { overrideReportText = "CoverEffectivenessExplanation".Translate() }); } if (this.constructionSkillPrerequisite > 0) { StatCategoryDef basics = StatCategoryDefOf.Basics; string label = "ConstructionSkillRequired".Translate(); string valueString = this.constructionSkillPrerequisite.ToString(); string overrideReportText = "ConstructionSkillRequiredExplanation".Translate(); yield return(new StatDrawEntry(basics, label, valueString, 0, overrideReportText)); } if (!this.verbs.NullOrEmpty <VerbProperties>()) { VerbProperties verb = (from x in this.verbs where x.isPrimary select x).First <VerbProperties>(); StatCategoryDef verbStatCategory = (this.category != ThingCategory.Pawn) ? (verbStatCategory = StatCategoryDefOf.Weapon) : (verbStatCategory = StatCategoryDefOf.PawnCombat); float warmup = verb.warmupTime; if (warmup > 0f) { string warmupLabel = (this.category != ThingCategory.Pawn) ? "WarmupTime".Translate() : "MeleeWarmupTime".Translate(); yield return(new StatDrawEntry(verbStatCategory, warmupLabel, warmup.ToString("0.##") + " s", 40, string.Empty)); } if (verb.defaultProjectile != null) { float dam = (float)verb.defaultProjectile.projectile.damageAmountBase; yield return(new StatDrawEntry(verbStatCategory, "Damage".Translate(), dam.ToString(), 50, string.Empty)); } if (verb.LaunchesProjectile) { int burstShotCount = verb.burstShotCount; float burstShotFireRate = 60f / verb.ticksBetweenBurstShots.TicksToSeconds(); float range = verb.range; if (burstShotCount > 1) { yield return(new StatDrawEntry(verbStatCategory, "BurstShotCount".Translate(), burstShotCount.ToString(), 20, string.Empty)); yield return(new StatDrawEntry(verbStatCategory, "BurstShotFireRate".Translate(), burstShotFireRate.ToString("0.##") + " rpm", 19, string.Empty)); } yield return(new StatDrawEntry(verbStatCategory, "Range".Translate(), range.ToString("0.##"), 10, string.Empty)); } } if (this.plant != null) { foreach (StatDrawEntry s in this.plant.SpecialDisplayStats()) { yield return(s); } } if (this.ingestible != null) { foreach (StatDrawEntry s2 in this.ingestible.SpecialDisplayStats(this)) { yield return(s2); } } if (this.race != null) { foreach (StatDrawEntry s3 in this.race.SpecialDisplayStats(this)) { yield return(s3); } } if (this.isBodyPartOrImplant) { foreach (RecipeDef def in from x in DefDatabase <RecipeDef> .AllDefs where x.IsIngredient(this.$this) select x) { HediffDef diff = def.addsHediff; if (diff != null) { if (diff.addedPartProps != null) { yield return(new StatDrawEntry(StatCategoryDefOf.Basics, "BodyPartEfficiency".Translate(), diff.addedPartProps.partEfficiency.ToStringByStyle(ToStringStyle.PercentZero, ToStringNumberSense.Absolute), 0, string.Empty)); } foreach (StatDrawEntry s4 in diff.SpecialDisplayStats()) { yield return(s4); } HediffCompProperties_VerbGiver vg = diff.CompProps <HediffCompProperties_VerbGiver>(); if (vg != null) { if (!vg.verbs.NullOrEmpty <VerbProperties>()) { VerbProperties verb2 = vg.verbs[0]; if (!verb2.MeleeRange) { if (verb2.defaultProjectile != null) { int projDamage = verb2.defaultProjectile.projectile.damageAmountBase; yield return(new StatDrawEntry(StatCategoryDefOf.Basics, "Damage".Translate(), projDamage.ToString(), 0, string.Empty)); } } else { int meleeDamage = verb2.meleeDamageBaseAmount; yield return(new StatDrawEntry(StatCategoryDefOf.Weapon, "Damage".Translate(), meleeDamage.ToString(), 0, string.Empty)); } } else if (!vg.tools.NullOrEmpty <Tool>()) { Tool tool = vg.tools[0]; yield return(new StatDrawEntry(StatCategoryDefOf.Weapon, "Damage".Translate(), tool.power.ToString(), 0, string.Empty)); } } ThoughtDef thought = DefDatabase <ThoughtDef> .AllDefs.FirstOrDefault((ThoughtDef x) => x.hediff == diff); if (thought != null && thought.stages != null && thought.stages.Any <ThoughtStage>()) { yield return(new StatDrawEntry(StatCategoryDefOf.Basics, "MoodChange".Translate(), thought.stages.First <ThoughtStage>().baseMoodEffect.ToStringByStyle(ToStringStyle.Integer, ToStringNumberSense.Offset), 0, string.Empty)); } } } } for (int i = 0; i < this.comps.Count; i++) { foreach (StatDrawEntry s5 in this.comps[i].SpecialDisplayStats()) { yield return(s5); } } }