public override void CompPostTick(ref float severityAdjustment) { string tex = TexPath; base.CompPostTick(ref severityAdjustment); if (base.Pawn.IsHashIntervalTick(200)) { float num = this.SeverityChangePerDay(); num *= 0.00333333341f; severityAdjustment += num; } if ((this.parent.CurStageIndex == 1 || this.parent.CurStage.label == "impregnation") && !this.parent.pawn.health.hediffSet.HasHediff(heDiffDeff)) { timer++; if (timer >= 600 && !isImpregnated) { #if DEBUG // Log.Message("pre impreg checking Severity"); #endif if (Rand.Chance(this.parent.Severity)) { #if DEBUG // Log.Message("adding embryo"); #endif parent.pawn.health.AddHediff(heDiffDeff, parent.pawn.RaceProps.body.corePart); Hediff hediff = parent.pawn.health.hediffSet.GetFirstHediffOfDef(heDiffDeff); HediffComp_XenoSpawner _XenoSpawner = hediff.TryGetComp <HediffComp_XenoSpawner>(); _XenoSpawner.royaleHugger = RoyaleHugger; _XenoSpawner.Impregnations = previousImpregnations; hasImpregnated = true; if (base.Pawn.health.hediffSet.HasHediff(heDiffDeff) && !isImpregnated) { isImpregnated = true; previousImpregnations++; } } timer = 0; } } else if ((this.parent.CurStageIndex == 2 || this.parent.CurStage.label == "post impregnation")) { timer2++; if (timer2 >= 600) { #if DEBUG // Log.Message("post impreg checking Severity"); #endif if (Rand.Chance(this.parent.Severity)) { #if DEBUG // Log.Message("removing Facehugger"); #endif Pawn.health.hediffSet.hediffs.Remove(this.parent); this.CompPostPostRemoved(); } timer2 = 0; } } }
// Token: 0x06004CB6 RID: 19638 RVA: 0x0009BB84 File Offset: 0x00099F84 public override void PostTick() { base.PostTick(); if (this.comps != null) { float num = 0f; HediffComp_XenoSpawner _XenoSpawner = this.TryGetComp <HediffComp_XenoSpawner>(); for (int i = 0; i < this.comps.Count; i++) { this.comps[i].CompPostTick(ref num); } if (num != 0f) { if (_XenoSpawner != null) { if (_XenoSpawner.RoyaleHugger && _XenoSpawner.Impregnations == 0) { num /= 5; } } this.Severity += num; } } }