Added a Gene for Specified Sex using RJW Logic

This commit is contained in:
Vegapnk 2022-11-20 17:33:50 +01:00
parent bf4303177e
commit 95fc9b89a0
42 changed files with 318 additions and 186 deletions

View file

@ -0,0 +1,42 @@
using Verse;
using rjw;
namespace RJW_Genes
{
public class Gene_FemaleOnly : Gene
{
public override void PostMake()
{
base.PostMake();
AdjustPawnToFemale();
// Here we call Sexualization after the Sex-Change
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
Sexualizer.sexualize_pawn(pawn);
}
public override void PostAdd()
{
base.PostMake();
AdjustPawnToFemale();
}
private void AdjustPawnToFemale()
{
// Here we really use the Gender.Female and not our helper IsFemale(pawn)
if (pawn.gender == Gender.Female)
return;
else
{
GenderHelper.ChangeSex(pawn, () => {
pawn.gender = Gender.Female;
GenitaliaChanger.RemoveAllGenitalia(pawn);
Sexualizer.sexualize_pawn(pawn);
});
GenderUtility.AdjustBodyToTargetGender(pawn, Gender.Female);
}
}
}
}