// Token: 0x06004378 RID: 17272 RVA: 0x001E8A2C File Offset: 0x001E6E2C public override bool OnHediffAdded(Pawn pawn, Hediff hediff) { if (hediff is Hediff_Injury && !pawn.health.hediffSet.PartIsMissing(hediff.Part.parent) && !pawn.health.hediffSet.PartIsMissing(hediff.Part)) { Hediff_Injury injury = hediff as Hediff_Injury; //float oldChance = injury.def.chanceToCauseNoPain; //injury.def.chanceToCauseNoPain = 70000f; injury.PostMake(); injury.ageTicks = 70000000; //injury.def.chanceToCauseNoPain = oldChance; } else if (hediff is Hediff_MissingPart && !pawn.health.hediffSet.PartIsMissing(hediff.Part.parent)) { Hediff_MissingPart missing = hediff as Hediff_MissingPart; //float oldChance = missing.def.chanceToCauseNoPain; //missing.def.chanceToCauseNoPain = 70000f; missing.PostMake(); missing.ageTicks = 70000000; //missing.def.chanceToCauseNoPain = oldChance; } if (pawn.health.Downed && !pawn.health.InPainShock) { DamageInfo info = new DamageInfo(DamageDefOf.Rotting, 17f, 0f, 0f, null, pawn.health.hediffSet.GetBrain()); pawn.Kill(info); } return(false); }
public void copyInjuries(Pawn sourcePawn) { if (this.def.race.body == sourcePawn.def.race.body) { for (int i = sourcePawn.health.hediffSet.hediffs.Count - 1; i >= 0; i--) { Hediff hediff = sourcePawn.health.hediffSet.hediffs[i]; Hediff_Injury injury = hediff as Hediff_Injury; Hediff_AddedPart added = hediff as Hediff_AddedPart; Hediff_MissingPart missing = hediff as Hediff_MissingPart; if (hediff is Hediff_Injury && injury != null && !health.WouldDieAfterAddingHediff(injury) && !health.hediffSet.PartIsMissing(injury.Part.parent) && !health.hediffSet.PartIsMissing(injury.Part)) { //float oldChance = injury.def.chanceToCauseNoPain; //injury.def.chanceToCauseNoPain = 70000f; injury.Severity = injury.Severity * 0.5f; injury.PostMake(); injury.ageTicks = 70000000; health.AddHediff(injury, injury.Part); //injury.def.chanceToCauseNoPain = oldChance; } else if (hediff is Hediff_MissingPart && missing != null && !health.hediffSet.PartIsMissing(missing.Part.parent) && !health.hediffSet.PartIsMissing(missing.Part)) { bool foundMoving = false; for (int i1 = 0; i1 < missing.Part.def.tags.Count; i1++) { if (missing.Part.def.tags[i1].defName.Contains("Moving")) { foundMoving = true; } } if (!foundMoving) { health.AddHediff(missing.def, missing.Part); } else if (!sourcePawn.health.hediffSet.PartIsMissing(missing.Part.parent)) { Hediff nHediff = HediffMaker.MakeHediff(HediffDefOf.Shredded, this, null); nHediff.Severity = 3.7f; //float oldChance = nHediff.def.chanceToCauseNoPain; //nHediff.def.chanceToCauseNoPain = 70000f; nHediff.PostMake(); nHediff.ageTicks = 70000000; health.AddHediff(nHediff, missing.Part); //nHediff.def.chanceToCauseNoPain = oldChance; } } else if (hediff is Hediff_AddedPart && added != null && !health.hediffSet.PartIsMissing(added.Part.parent) && !health.hediffSet.PartIsMissing(added.Part)) { health.AddHediff(added.def, added.Part); } } } FixZombie(); armorRating_Sharp = TryDrawOverallArmor(sourcePawn, StatDefOf.ArmorRating_Sharp); armorRating_Blunt = TryDrawOverallArmor(sourcePawn, StatDefOf.ArmorRating_Blunt); //armorRating_Heat = TryDrawOverallArmor(sourcePawn, StatDefOf.ArmorRating_Heat); }