private void AntibioticEffect(Pawn pawn, List <HediffDef> extraHediffs) { foreach (Hediff hediff in from x in pawn.health.hediffSet.hediffs where x.def.makesSickThought || extraHediffs.Contains(x.def) select x) { if (hediff.TendableNow()) { hediff.Tended(0.8f); } HediffComp_Immunizable hediffComp_Immunizable = hediff.TryGetComp <HediffComp_Immunizable>(); if (hediffComp_Immunizable != null) { hediff.Severity -= hediffComp_Immunizable.Props.severityPerDayNotImmune / GenDate.TicksPerDay * 1.2f * GenDate.TicksPerHour; } HediffComp_GrowthMode hediffComp_GrowthMode = hediff.TryGetComp <HediffComp_GrowthMode>(); if (hediffComp_GrowthMode != null) { hediff.Severity -= hediffComp_GrowthMode.Props.severityPerDayGrowing / GenDate.TicksPerDay * 1.5f * GenDate.TicksPerHour; } if (hediff.Severity <= hediff.def.initialSeverity || !hediff.Visible) { pawn.health.RemoveHediff(hediff); return; } } }
private void AntibioticEffect(Pawn pawn, List <HediffDef> extraHediffs, float minEffect = 0.025f) { List <Hediff> hediffs = (from x in pawn.health.hediffSet.hediffs where x.def.makesSickThought || extraHediffs.Contains(x.def) select x).ToList(); for (int i = hediffs.Count - 1; i >= 0; i--) { if (hediffs[i].TendableNow()) { hediffs[i].Tended(0.8f); } float num = 0f; HediffComp_Immunizable hediffComp_Immunizable = hediffs[i].TryGetComp <HediffComp_Immunizable>(); if (hediffComp_Immunizable != null) { num += Mathf.Abs(hediffComp_Immunizable.Props.severityPerDayNotImmune / GenDate.TicksPerDay * 1.2f * GenDate.TicksPerHour); } HediffComp_GrowthMode hediffComp_GrowthMode = hediffs[i].TryGetComp <HediffComp_GrowthMode>(); if (hediffComp_GrowthMode != null) { num += Mathf.Abs(hediffComp_GrowthMode.Props.severityPerDayGrowing / GenDate.TicksPerDay * 1.5f * GenDate.TicksPerHour); } HediffComp_SeverityPerDay hediffComp_SeverityPerDay = hediffs[i].TryGetComp <HediffComp_SeverityPerDay>(); if (hediffComp_SeverityPerDay != null) { //num += Mathf.Abs(((HediffCompProperties_SeverityPerDay)hediffComp_SeverityPerDay.props).severityPerDay / GenDate.TicksPerDay * 2f * GenDate.TicksPerHour); if (hediffComp_SeverityPerDay.props is HediffCompProperties_SeverityPerDay prop) { num += Mathf.Abs(prop.severityPerDay / GenDate.TicksPerDay * 2f * GenDate.TicksPerHour); } } if (num < minEffect) { num = minEffect; } if (hediffs[i].Severity < num) { pawn.health.RemoveHediff(hediffs[i]); continue; } hediffs[i].Severity -= num; if (!hediffs[i].Visible) { pawn.health.RemoveHediff(hediffs[i]); } } }