Example #1
0
        //omg this is painful as hell on the poor children.

        public static void wakeUpCryBaby(Pawn pawn, BodyPartRecord part, GeneSeedHediffWithComps geneSeedAvailable)
        {
            if (pawn.Drafted && pawn.needs.rest.CurCategory <= RestCategory.Exhausted && geneSeedAvailable.Severity > .2f) //need to be a full + 1, shh~! its a super power
            {
                pawn.needs.rest.TickResting(Rand.Value);                                                                   //war is basically rest for the wicked

                if (!PawnHelper.is_bloodlust(pawn))
                {
                    return;
                }
                //bloodravens love this cause of the red haze or whatever you wanna call it.
                pawn.skills.Learn(SkillDefOf.Melee, 1, true);
            }
        }
        public static void EnhanceArmor(Pawn pawn, BodyPartRecord part, GeneSeedHediffWithComps geneSeedAvailable)
        {
            foreach (var apparel in pawn.apparel.WornApparel)
            {
                if (apparel.WornByCorpse)
                {
                    apparel.Notify_PawnResurrected();//Artifacts are good.

                    CompQuality compQuality = apparel.TryGetComp <CompQuality>();
                    compQuality.SetQuality(QualityCategory.Legendary, ArtGenerationContext.Colony);
                }

                apparel.HitPoints = (int)Math.Max(apparel.HitPoints, apparel.MaxHitPoints);
            }
        }
        public static void apply(Pawn pawn, BodyPartRecord part, GeneSeedHediffWithComps geneSeedAvailable)
        {
            if (pawn == null || part?.def == null)
            {
                return;
            }

            try
            {
                if (part.def == LarramansOrgan || part.def == Haemastamen)
                {
                    ClotOrganHelper.doOrgan(pawn, part);
                }
                else if (part.def == OoliticKidney)
                {
                    ToxicFilter.doClense(pawn, part);
                }
                else if (part.def == ProgenoidGlands)
                {
                    geneSeedAvailable.Severity += .0001f;
                }
                else if (part.def == Preomnor)
                {
                    BestTummyEver.doClense(pawn, part);
                }
                else if (part.def == CatalepseanNode)
                {
                    CatalepseanNodeSleepLessStessless.wakeUpCryBaby(pawn, part, geneSeedAvailable);
                }
                else if (part.def == TheBlackCarapace)
                {
                    Organs.TheBlackCarapace.EnhanceArmor(pawn, part, geneSeedAvailable);
                }
                else if (part.def == Biscopea || part.def == Ossmodula)
                {
                }
            }
            catch (Exception e)
            {
                Log.Error("Well butt failed at organ functioning:" + e.StackTrace);
            }
        }