// Token: 0x06000058 RID: 88 RVA: 0x000058E0 File Offset: 0x00003AE0
        public static void DoMSCerebrax(Pawn p, ThingDef t)
        {
            var degree  = 0;
            var MsgType = MessageTypeDefOf.PositiveEvent;
            var Psych   = DefDatabase <TraitDef> .GetNamed("PsychicSensitivity");

            if (p.story.traits.HasTrait(Psych))
            {
                degree = p.story.traits.GetTrait(Psych).Degree;
            }

            if (degree == 2)
            {
                var   story = p.story;
                Trait trait;
                if (story == null)
                {
                    trait = null;
                }
                else
                {
                    var traits = story.traits;
                    trait = traits?.GetTrait(Psych);
                }

                var ToGo = trait;
                MSTraitChanger.RemoveTrait(p, ToGo, t.label, MsgType);
                var ToAdd = new Trait(Psych, 1);
                MSTraitChanger.AddTrait(p, ToAdd, t.label, MsgType, false);
                return;
            }

            if (degree != 1)
            {
                return;
            }

            var   story2 = p.story;
            Trait trait2;

            if (story2 == null)
            {
                trait2 = null;
            }
            else
            {
                var traits2 = story2.traits;
                trait2 = traits2?.GetTrait(Psych);
            }

            var ToGo2 = trait2;

            MSTraitChanger.RemoveTrait(p, ToGo2, t.label, MsgType);
        }
        // Token: 0x06000056 RID: 86 RVA: 0x0000571C File Offset: 0x0000391C
        public static void DoMSImmunisation(Pawn p, ThingDef t)
        {
            var Sickly   = false;
            var MsgType  = MessageTypeDefOf.PositiveEvent;
            var Immunity = DefDatabase <TraitDef> .GetNamed("Immunity");

            if (p.story.traits.HasTrait(Immunity))
            {
                var story = p.story;
                int?num;
                if (story == null)
                {
                    num = null;
                }
                else
                {
                    var traits = story.traits;
                    num = traits != null ? new int?(traits.GetTrait(Immunity).Degree) : null;
                }

                var num2 = num;
                var num3 = -1;
                if ((num2.GetValueOrDefault() == num3) & (num2 != null))
                {
                    Sickly = true;
                }
            }

            if (Sickly)
            {
                var   story2 = p.story;
                Trait trait;
                if (story2 == null)
                {
                    trait = null;
                }
                else
                {
                    var traits2 = story2.traits;
                    trait = traits2?.GetTrait(Immunity);
                }

                var ToGo = trait;
                MSTraitChanger.RemoveTrait(p, ToGo, t.label, MsgType);
                return;
            }

            var ToAdd = new Trait(Immunity, 1);

            MSTraitChanger.AddTrait(p, ToAdd, t.label, MsgType);
        }
        // Token: 0x06000056 RID: 86 RVA: 0x0000571C File Offset: 0x0000391C
        public static void DoMSImmunisation(Pawn p, ThingDef t)
        {
            bool           Sickly   = false;
            MessageTypeDef MsgType  = MessageTypeDefOf.PositiveEvent;
            TraitDef       Immunity = DefDatabase <TraitDef> .GetNamed("Immunity", true);

            if (p.story.traits.HasTrait(Immunity) && p != null)
            {
                Pawn_StoryTracker story = p.story;
                int?num;
                if (story == null)
                {
                    num = null;
                }
                else
                {
                    TraitSet traits = story.traits;
                    num = ((traits != null) ? new int?(traits.GetTrait(Immunity).Degree) : null);
                }
                int?num2 = num;
                int num3 = -1;
                if (num2.GetValueOrDefault() == num3 & num2 != null)
                {
                    Sickly = true;
                }
            }
            if (Sickly)
            {
                Pawn_StoryTracker story2 = p.story;
                Trait             trait;
                if (story2 == null)
                {
                    trait = null;
                }
                else
                {
                    TraitSet traits2 = story2.traits;
                    trait = (traits2?.GetTrait(Immunity));
                }
                Trait ToGo = trait;
                MSTraitChanger.RemoveTrait(p, ToGo, t.label, MsgType, true);
                return;
            }
            Trait ToAdd = new Trait(Immunity, 1, false);

            MSTraitChanger.AddTrait(p, ToAdd, t.label, MsgType, true);
        }
        // Token: 0x06000058 RID: 88 RVA: 0x000058E0 File Offset: 0x00003AE0
        public static void DoMSCerebrax(Pawn p, ThingDef t)
        {
            int            degree  = 0;
            MessageTypeDef MsgType = MessageTypeDefOf.PositiveEvent;
            TraitDef       Psych   = DefDatabase <TraitDef> .GetNamed("PsychicSensitivity", true);

            if (p.story.traits.HasTrait(Psych))
            {
                degree = p.story.traits.GetTrait(Psych).Degree;
            }
            if (degree == 2)
            {
                Pawn_StoryTracker story = p.story;
                Trait             trait;
                if (story == null)
                {
                    trait = null;
                }
                else
                {
                    TraitSet traits = story.traits;
                    trait = (traits?.GetTrait(Psych));
                }
                Trait ToGo = trait;
                MSTraitChanger.RemoveTrait(p, ToGo, t.label, MsgType, true);
                Trait ToAdd = new Trait(Psych, 1, false);
                MSTraitChanger.AddTrait(p, ToAdd, t.label, MsgType, false);
                return;
            }
            if (degree == 1)
            {
                Pawn_StoryTracker story2 = p.story;
                Trait             trait2;
                if (story2 == null)
                {
                    trait2 = null;
                }
                else
                {
                    TraitSet traits2 = story2.traits;
                    trait2 = (traits2?.GetTrait(Psych));
                }
                Trait ToGo2 = trait2;
                MSTraitChanger.RemoveTrait(p, ToGo2, t.label, MsgType, true);
            }
        }