2022-11-20 16:33:50 +00:00
using Verse ;
using rjw ;
namespace RJW_Genes
{
2023-04-27 00:56:55 +00:00
public class Gene_FemaleOnly : RJW_Gene
2022-11-20 16:33:50 +00:00
{
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 ) ;
}
2024-06-04 11:08:37 +00:00
foreach ( Gene g in pawn . genes . GenesListForReading )
{
if ( g . def . defName = = "rjw_genes_hydrolic_genitalia" )
{
g . PostAdd ( ) ;
}
if ( g . def . defName = = "rjw_genes_bionic_genitalia" )
{
g . PostAdd ( ) ;
return ;
}
}
2022-11-20 16:33:50 +00:00
}
2023-04-27 00:56:55 +00:00
public override void Notify_OnPawnGeneration ( )
{
base . Notify_OnPawnGeneration ( ) ;
2023-04-30 08:06:53 +00:00
// If this is Pawn generation, then we can assume that the pawn was never any gender other than female, so they shouldn't have sex change thoughts. (Issue #32)
2023-04-27 00:56:55 +00:00
GenderUtility . RemoveAllSexChangeThoughts ( pawn ) ;
}
2022-11-20 16:33:50 +00:00
}
}