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