rjw-genes/Source/Genes/Gender/Gene_MaleOnly.cs
2023-04-30 10:06:53 +02:00

48 lines
1.3 KiB
C#

using Verse;
using rjw;
namespace RJW_Genes
{
public class Gene_MaleOnly : RJW_Gene
{
public override void PostMake()
{
base.PostMake();
AdjustPawnToMale();
// Here we call Sexualization after the Sex-Change
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
Sexualizer.sexualize_pawn(pawn);
}
public override void PostAdd()
{
base.PostMake();
AdjustPawnToMale();
}
private void AdjustPawnToMale()
{
if (pawn.gender == Gender.Male)
return;
else
{
GenderHelper.ChangeSex(pawn, () => {
pawn.gender = Gender.Male;
GenitaliaChanger.RemoveAllGenitalia(pawn);
Sexualizer.sexualize_pawn(pawn);
});
GenderUtility.AdjustBodyToTargetGender(pawn, Gender.Male);
}
}
public override void Notify_OnPawnGeneration()
{
base.Notify_OnPawnGeneration();
// If this is Pawn generation, then we can assume that the pawn was never any gender other than male, so they shouldn't have sex change thoughts. (Issue #32)
GenderUtility.RemoveAllSexChangeThoughts(pawn);
}
}
}