Example #1
0
        protected override ThoughtState CurrentStateInternal(Pawn p)
        {
            if (p == null)
            {
                return(false);
            }

            //if (p.ageTracker.AgeBiologicalYears > SettingHelper.latest.PubertyOnset+1) //return false;
            if (PawnHelper.isHaveHediff(p, HediffDefOf.LifeStages_Adult))
            {
                return(false);
            }

            if (PawnHelper.isHaveHediff(p, HediffDefOf.LifeStages_Puberty))
            {
                return(false);
            }

            if (PawnHelper.isHaveHediff(p, HediffDefOf.LifeStages_Youth))
            {
                return(false);
            }

            PawnGenerator_GeneratePawnRelations_Patch.Postfix(p);

            return(false);
        }
        public override IEnumerable <BodyPartRecord> GetPartsToApplyOn(Pawn pawn, RecipeDef recipe)
        {
            if (PawnHelper.isHaveHediff(pawn, HediffDefOf.LifeStages_Transgendered) || pawn.gender == Gender.None)
            {
                return(pawn.LifeStages_ReproductiveOrgans());
            }

            return(new List <BodyPartRecord>());
        }
        protected override ThoughtState CurrentStateInternal(Pawn p)
        {
            if (p == null)
            {
                return(false);
            }

            if (!PawnHelper.isHaveHediff(p, HediffDefOf.LifeStages_Puberty))
            {
                return(false);
            }

            return(PawnHelper.isHaveHediff(p, HediffDefOf.LifeStages_Transgendered) ? ThoughtState.ActiveAtStage(1) : ThoughtState.ActiveAtStage(pubertyFeels(p) ? 1 : 0));
        }
        public override void ApplyOnPawn(Pawn pawn, BodyPartRecord part, Pawn billDoer, List <Thing> ingredients, Bill bill)
        {
            if (billDoer != null)
            {
                if (!PawnHelper.isHaveHediff(pawn, HediffDefOf.LifeStages_Youth) && CheckSurgeryFail(billDoer, pawn, ingredients, part, bill))
                {
                    return;
                }
                TaleRecorder.RecordTale(TaleDefOf.DidSurgery, billDoer, pawn);
            }

            PawnHelper.ResolveTransgender(pawn);

            pawn.gender = newGender(pawn);

            resolveSexOrgans(pawn);
        }