// 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);
                    }
                }
            }
        }
Example #2
0
 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);
             }
         }
     }
 }