Example #1
0
        public override float MoodOffset()
        {
            if (!added)
            {
                if (this.def.hediff != null)
                {
                    this.pawn.health.AddHediff(this.def.hediff);
                }

                if (this.def.HasModExtension <Thought_Hediff_Extension>())
                {
                    Thought_Hediff_Extension extension = this.def.GetModExtension <Thought_Hediff_Extension>();
                    BodyPartRecord           part      = this.pawn.RaceProps.body.GetPartsWithDef(extension.partToAffect).FirstOrDefault();
                    this.pawn.health.AddHediff(extension.hediffToAffect, part);
                    pawn.health.hediffSet.GetFirstHediffOfDef(extension.hediffToAffect, false).Severity += extension.percentage;

                    if (extension.secondHediffToAffect != null)
                    {
                        BodyPartRecord part2 = this.pawn.RaceProps.body.GetPartsWithDef(extension.secondPartToAffect).FirstOrDefault();
                        this.pawn.health.AddHediff(extension.secondHediffToAffect, part2);
                        pawn.health.hediffSet.GetFirstHediffOfDef(extension.secondHediffToAffect, false).Severity += extension.secondPercentage;
                    }
                }
                added = true;
            }


            return(base.MoodOffset());
        }
Example #2
0
        //Soooo, here was the problem, the Thought class doesn't have an Init() or Start() or similar method, so we hooked into
        //a method that runs ALL THE TIME, MoodOffset, and by using a simple bool variable we assured this code won't run all
        //the time and create HUGE amounts of lag
        public override float MoodOffset()
        {
            if (!added)
            {
                //First, we use the hediff field of the Thought XML to add that hediff
                if (this.def.hediff != null)
                {
                    this.pawn.health.AddHediff(this.def.hediff);
                }
                //And if we want to add more hediffs, we can add up to two more. This could be extended to any number using
                //a simple list
                if (this.def.HasModExtension <Thought_Hediff_Extension>())
                {
                    Thought_Hediff_Extension extension = this.def.GetModExtension <Thought_Hediff_Extension>();
                    if (extension.hediffToAffect != null)
                    {
                        BodyPartRecord part = this.pawn.RaceProps.body.GetPartsWithDef(extension.partToAffect).FirstOrDefault();
                        //We check mod options for the toggle to deactivate chronic conditions
                        if (VanillaCookingExpanded_Settings.allowConditions || ((extension.hediffToAffect.defName != "VCE_Cholesterol") && (extension.hediffToAffect.defName != "VCE_Diabetes") &&
                                                                                (extension.hediffToAffect.defName != "VCE_HighBloodPressure")))
                        {
                            this.pawn.health.AddHediff(extension.hediffToAffect, part);
                            pawn.health.hediffSet.GetFirstHediffOfDef(extension.hediffToAffect, false).Severity += extension.percentage;
                        }
                    }

                    if (extension.secondHediffToAffect != null)
                    {
                        BodyPartRecord part2 = this.pawn.RaceProps.body.GetPartsWithDef(extension.secondPartToAffect).FirstOrDefault();
                        //We check mod options for the toggle to deactivate chronic conditions
                        if (VanillaCookingExpanded_Settings.allowConditions || ((extension.secondHediffToAffect.defName != "VCE_Cholesterol") && (extension.secondHediffToAffect.defName != "VCE_Diabetes") &&
                                                                                (extension.secondHediffToAffect.defName != "VCE_HighBloodPressure")))
                        {
                            this.pawn.health.AddHediff(extension.secondHediffToAffect, part2);
                            pawn.health.hediffSet.GetFirstHediffOfDef(extension.secondHediffToAffect, false).Severity += extension.secondPercentage;
                        }
                    }
                    if (extension.increaseJoy)
                    {
                        pawn.needs.joy.GainJoy(extension.extraJoy, JoyKindDefOf.Gluttonous);
                    }
                }



                added = true;
            }


            return(base.MoodOffset());
        }