//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); } }