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

@ -4,7 +4,7 @@ using RimWorld;
namespace RJW_Genes
{
public class Gene_ExtraAnus : Gene
public class Gene_ExtraAnus : RJW_Gene
{
internal Hediff additional_anus;
@ -12,8 +12,6 @@ namespace RJW_Genes
public override void PostMake()
{
base.PostMake();
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
Sexualizer.sexualize_pawn(pawn);
if (additional_anus == null)
{

View file

@ -4,7 +4,7 @@ using RimWorld;
namespace RJW_Genes
{
public class Gene_ExtraBreasts : Gene
public class Gene_ExtraBreasts : RJW_Gene
{
internal Hediff additional_breasts;
@ -12,13 +12,11 @@ namespace RJW_Genes
public override void PostMake()
{
base.PostMake();
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
Sexualizer.sexualize_pawn(pawn);
// Penis are only added for female pawns!
if (pawn.gender == Gender.Female && additional_breasts == null)
// Tits are only added for female pawns!
if (GenderUtility.IsFemale(pawn) && additional_breasts == null)
{
createAndAddPenis();
CreateAndAddBreasts();
}
}
@ -26,10 +24,10 @@ namespace RJW_Genes
{
base.PostAdd();
// Penis are only added for female pawns!
if (pawn.gender == Gender.Female && additional_breasts == null)
// Tits are only added for female pawns!
if (GenderUtility.IsFemale(pawn) && additional_breasts == null)
{
createAndAddPenis();
CreateAndAddBreasts();
}
}
@ -40,7 +38,7 @@ namespace RJW_Genes
pawn.health.RemoveHediff(additional_breasts);
}
internal void createAndAddPenis()
internal void CreateAndAddBreasts()
{
var correctGene = GenitaliaUtility.GetGenitaliaTypeGeneForPawn(pawn);
var breastDef = GenitaliaUtility.GetBreastsForGene(correctGene);

View file

@ -4,7 +4,7 @@ using RimWorld;
namespace RJW_Genes
{
public class Gene_ExtraPenis : Gene
public class Gene_ExtraPenis : RJW_Gene
{
internal Hediff additional_penis;
@ -12,13 +12,11 @@ namespace RJW_Genes
public override void PostMake()
{
base.PostMake();
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
Sexualizer.sexualize_pawn(pawn);
// Penis are only added for male pawns!
if (pawn.gender == Gender.Male && additional_penis == null)
if (GenderUtility.IsMale(pawn) && additional_penis == null)
{
createAndAddPenis();
CreateAndAddPenis();
}
}
@ -27,9 +25,9 @@ namespace RJW_Genes
base.PostAdd();
// Penis are only added for male pawns!
if (pawn.gender == Gender.Male && additional_penis == null)
if (GenderUtility.IsMale(pawn) && additional_penis == null)
{
createAndAddPenis();
CreateAndAddPenis();
}
}
@ -40,7 +38,7 @@ namespace RJW_Genes
pawn.health.RemoveHediff(additional_penis);
}
internal void createAndAddPenis()
internal void CreateAndAddPenis()
{
var correctGene = GenitaliaUtility.GetGenitaliaTypeGeneForPawn(pawn);
HediffDef penisDef = GenitaliaUtility.GetPenisForGene(correctGene);

View file

@ -4,7 +4,7 @@ using RimWorld;
namespace RJW_Genes
{
public class Gene_ExtraVagina : Gene
public class Gene_ExtraVagina : RJW_Gene
{
internal Hediff additional_vagina;
@ -17,11 +17,9 @@ namespace RJW_Genes
public override void PostMake()
{
base.PostMake();
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
Sexualizer.sexualize_pawn(pawn);
// Vaginas are only added for female pawns!
if (pawn.gender == Gender.Female && additional_vagina == null)
if (GenderUtility.IsFemale(pawn) && additional_vagina == null)
{
CreateAndAddVagina();
}
@ -32,7 +30,7 @@ namespace RJW_Genes
base.PostAdd();
// Vaginas are only added for female pawns!
if (pawn.gender == Gender.Female && additional_vagina == null)
if (GenderUtility.IsFemale(pawn) && additional_vagina == null)
{
CreateAndAddVagina();
}

View file

@ -4,7 +4,7 @@ using RimWorld;
namespace RJW_Genes
{
public class Gene_Futa : Gene
public class Gene_Futa : RJW_Gene
{
internal Hediff additional_genital;
@ -12,14 +12,12 @@ namespace RJW_Genes
public override void PostMake()
{
base.PostMake();
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
Sexualizer.sexualize_pawn(pawn);
if (pawn.gender == Gender.Female && additional_genital == null)
if (GenderUtility.IsFemale(pawn) && additional_genital == null)
{
createAndAddPenis();
}
if (pawn.gender == Gender.Male && additional_genital == null)
if (GenderUtility.IsMale(pawn) && additional_genital == null)
{
CreateAndAddVagina();
}

View file

@ -4,7 +4,7 @@ using RimWorld;
namespace RJW_Genes
{
public class Gene_NoAnus : Gene
public class Gene_NoAnus : RJW_Gene
{
internal Hediff removed_anus;
@ -15,8 +15,6 @@ namespace RJW_Genes
public override void PostMake()
{
base.PostMake();
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
Sexualizer.sexualize_pawn(pawn);
if (removed_anus == null)
{

View file

@ -4,7 +4,7 @@ using RimWorld;
namespace RJW_Genes
{
public class Gene_NoBreasts : Gene
public class Gene_NoBreasts : RJW_Gene
{
internal Hediff removed_breasts;
@ -15,11 +15,9 @@ namespace RJW_Genes
public override void PostMake()
{
base.PostMake();
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
Sexualizer.sexualize_pawn(pawn);
// Breasts are removed for female pawns!
if (pawn.gender == Gender.Female && removed_breasts == null)
if (GenderUtility.IsFemale(pawn) && removed_breasts == null)
{
RemoveButStoreBreasts();
}
@ -30,7 +28,7 @@ namespace RJW_Genes
base.PostAdd();
// Breasts are removed for female pawns!
if (pawn.gender == Gender.Female && removed_breasts == null)
if (GenderUtility.IsFemale(pawn) && removed_breasts == null)
{
RemoveButStoreBreasts();
}

View file

@ -4,7 +4,7 @@ using RimWorld;
namespace RJW_Genes
{
public class Gene_NoPenis : Gene
public class Gene_NoPenis : RJW_Gene
{
internal Hediff removed_penis;
@ -15,11 +15,9 @@ namespace RJW_Genes
public override void PostMake()
{
base.PostMake();
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
Sexualizer.sexualize_pawn(pawn);
// Penis are only added for male pawns!
if (pawn.gender == Gender.Male && removed_penis == null)
// Penis are only removed for male pawns!
if (GenderUtility.IsMale(pawn) && removed_penis == null)
{
RemoveButStorePenis();
}
@ -29,8 +27,8 @@ namespace RJW_Genes
{
base.PostAdd();
// Penis are only added for male pawns!
if (pawn.gender == Gender.Male && removed_penis == null)
// Penis are only removed for male pawns!
if (GenderUtility.IsMale(pawn) && removed_penis == null)
{
RemoveButStorePenis();
}

View file

@ -4,7 +4,7 @@ using RimWorld;
namespace RJW_Genes
{
public class Gene_NoVagina : Gene
public class Gene_NoVagina : RJW_Gene
{
internal Hediff removed_vagina;
@ -15,11 +15,9 @@ namespace RJW_Genes
public override void PostMake()
{
base.PostMake();
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
Sexualizer.sexualize_pawn(pawn);
// Vaginas are only removed for female pawns!
if (pawn.gender == Gender.Female && removed_vagina == null)
if (GenderUtility.IsFemale(pawn) && removed_vagina == null)
{
RemoveButStoreVagina();
}
@ -30,7 +28,7 @@ namespace RJW_Genes
base.PostAdd();
// Vaginas are only removed for female pawns!
if (pawn.gender == Gender.Female && removed_vagina == null)
if (GenderUtility.IsFemale(pawn) && removed_vagina == null)
{
RemoveButStoreVagina();
}