// Token: 0x06000031 RID: 49 RVA: 0x00002E20 File Offset: 0x00001020 protected override void DoIngestionOutcomeSpecial(Pawn pawn, Thing ingested) { bool flag = AddictionUtility.AddictedToAnything(pawn); if (flag) { foreach (ChemicalDef chemical in DefDatabase <ChemicalDef> .AllDefs) { bool flag2 = AddictionUtility.IsAddicted(pawn, chemical); if (flag2) { Hediff hediff = AddictionUtility.FindAddictionHediff(pawn, chemical); Hediff hediff2 = AddictionUtility.FindToleranceHediff(pawn, chemical); pawn.health.RemoveHediff(hediff); bool flag3 = hediff2 != null; if (flag3) { pawn.health.RemoveHediff(hediff2); } } } foreach (HediffDef def in this.BeneficialAddictiveDrugHediffs) { Hediff firstHediffOfDef = pawn.health.hediffSet.GetFirstHediffOfDef(def, false); bool flag4 = firstHediffOfDef != null; if (flag4) { pawn.health.RemoveHediff(firstHediffOfDef); } } } }
private bool CanFindLuciferiumAddict(Map map, out Pawn pawn) { pawn = null; foreach (Pawn pawn2 in map.mapPawns.FreeColonists) { if (AddictionUtility.IsAddicted(pawn2, ThingDefOfReconAndDiscovery.Luciferium)) { pawn = pawn2; return(true); } } return(false); }
protected virtual void DoIngestionOutcomeSpecial(Pawn pawn, Thing ingested) { if (!AddictionUtility.AddictedToAnything(pawn)) { return; } using (IEnumerator <ChemicalDef> enumerator = DefDatabase <ChemicalDef> .get_AllDefs().GetEnumerator()) { while (((IEnumerator)enumerator).MoveNext()) { ChemicalDef current = enumerator.Current; if (AddictionUtility.IsAddicted(pawn, current)) { Hediff addictionHediff = (Hediff)AddictionUtility.FindAddictionHediff(pawn, current); Hediff toleranceHediff = AddictionUtility.FindToleranceHediff(pawn, current); ((Pawn_HealthTracker)pawn.health).RemoveHediff(addictionHediff); if (toleranceHediff != null) { ((Pawn_HealthTracker)pawn.health).RemoveHediff(toleranceHediff); } } } } using (IEnumerator <HediffDef> enumerator = this.BeneficialAddictiveDrugHediffs.GetEnumerator()) { while (((IEnumerator)enumerator).MoveNext()) { HediffDef current = enumerator.Current; Hediff firstHediffOfDef = ((HediffSet)((Pawn_HealthTracker)pawn.health).hediffSet).GetFirstHediffOfDef(current, false); if (firstHediffOfDef != null) { ((Pawn_HealthTracker)pawn.health).RemoveHediff(firstHediffOfDef); } } } }