mirror of
https://github.com/vegapnk/RJW-Genes.git
synced 2024-08-15 00:23:31 +00:00
Added a Gene for Specified Sex using RJW Logic
This commit is contained in:
parent
bf4303177e
commit
95fc9b89a0
42 changed files with 318 additions and 186 deletions
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
73
Source/Genes/Gender/GenderUtility.cs
Normal file
73
Source/Genes/Gender/GenderUtility.cs
Normal file
|
@ -0,0 +1,73 @@
|
|||
using Verse;
|
||||
using rjw;
|
||||
using RimWorld;
|
||||
using System.Collections;
|
||||
using System.Linq;
|
||||
using System;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class GenderUtility
|
||||
{
|
||||
/// <summary>
|
||||
/// Returns if a Pawn is female (Gender==Female) or if it should be (Gene==FemaleOnly)
|
||||
/// This is used as a small helper, as the genes might fire in different orders.
|
||||
/// </summary>
|
||||
public static bool IsFemale(Pawn pawn)
|
||||
{
|
||||
return
|
||||
pawn.gender == Gender.Female || pawn.genes.GenesListForReading.Any(gene => gene.def.defName.EqualsIgnoreCase(GeneDefOf.rjw_genes_female_only.defName));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns if a Pawn is male (Gender==Male) or if it should be (Gene==MaleOnly)
|
||||
/// This is used as a small helper, as the genes might fire in different orders.
|
||||
/// </summary>
|
||||
public static bool IsMale(Pawn pawn)
|
||||
{
|
||||
return
|
||||
pawn.gender == Gender.Male || pawn.genes.GenesListForReading.Any(gene => gene.def.defName.EqualsIgnoreCase(GeneDefOf.rjw_genes_male_only.defName));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adjusts the Body Type to match the given target gender
|
||||
/// (for male and female only, baby,child and hulks don't change)
|
||||
/// </summary>
|
||||
/// <param name="pawn"></param>
|
||||
/// <param name="targetGender"></param>
|
||||
public static void AdjustBodyToTargetGender(Pawn pawn, Gender targetGender)
|
||||
{
|
||||
if (pawn == null)
|
||||
return;
|
||||
if (pawn.story.bodyType == BodyTypeDefOf.Baby || pawn.story.bodyType == BodyTypeDefOf.Hulk || pawn.story.bodyType == BodyTypeDefOf.Child)
|
||||
return;
|
||||
|
||||
if (targetGender == Gender.Male)
|
||||
{
|
||||
pawn.story.bodyType = BodyTypeDefOf.Male;
|
||||
}
|
||||
else if (targetGender == Gender.Female)
|
||||
{
|
||||
pawn.story.bodyType = BodyTypeDefOf.Female;
|
||||
pawn.style.beardDef = BeardDefOf.NoBeard;
|
||||
}
|
||||
|
||||
// Re-Choose heads if it is wrong gender
|
||||
if (pawn.story.headType.gender == Gender.None || pawn.story.headType.gender == targetGender)
|
||||
{
|
||||
// Do nothing, Gender of Heat is Neutral or matches
|
||||
}
|
||||
else
|
||||
{
|
||||
// Below line tries to get (and set) an available head from the backstory, if it returns true everything worked if it returns false we log it
|
||||
if(! pawn.story.TryGetRandomHeadFromSet(DefDatabase<HeadTypeDef>.AllDefs.Where((Func<HeadTypeDef, bool>)(x => x.randomChosen))))
|
||||
{
|
||||
Log.Message("Failed to retrieve a correct-gender head for the pawn " + pawn.Name);
|
||||
};
|
||||
}
|
||||
|
||||
// Force Redraw at the spot
|
||||
pawn.Drawer.renderer.graphics.SetAllGraphicsDirty();
|
||||
}
|
||||
}
|
||||
}
|
42
Source/Genes/Gender/Gene_FemaleOnly.cs
Normal file
42
Source/Genes/Gender/Gene_FemaleOnly.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
42
Source/Genes/Gender/Gene_MaleOnly.cs
Normal file
42
Source/Genes/Gender/Gene_MaleOnly.cs
Normal file
|
@ -0,0 +1,42 @@
|
|||
using Verse;
|
||||
using rjw;
|
||||
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_MaleOnly : 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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -3,13 +3,11 @@ using rjw;
|
|||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_CanineGenitalia : Gene
|
||||
public class Gene_CanineGenitalia : RJW_Gene
|
||||
{
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||
Sexualizer.sexualize_pawn(pawn);
|
||||
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.canine_penis,Genital_Helper.canine_vagina,Genital_Helper.generic_anus);
|
||||
}
|
||||
|
|
|
@ -4,13 +4,11 @@ using rjw;
|
|||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_DemonicGenitalia : Gene
|
||||
public class Gene_DemonicGenitalia : RJW_Gene
|
||||
{
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||
Sexualizer.sexualize_pawn(pawn);
|
||||
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.demon_penis,Genital_Helper.demon_vagina,Genital_Helper.demon_anus);
|
||||
}
|
||||
|
|
|
@ -3,13 +3,11 @@ using rjw;
|
|||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_DragonGenitalia : Gene
|
||||
public class Gene_DragonGenitalia : RJW_Gene
|
||||
{
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||
Sexualizer.sexualize_pawn(pawn);
|
||||
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.dragon_penis,Genital_Helper.dragon_vagina,Genital_Helper.generic_anus);
|
||||
}
|
||||
|
|
|
@ -3,13 +3,11 @@ using rjw;
|
|||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_EquineGenitalia : Gene
|
||||
public class Gene_EquineGenitalia : RJW_Gene
|
||||
{
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||
Sexualizer.sexualize_pawn(pawn);
|
||||
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.equine_penis,Genital_Helper.equine_vagina,Genital_Helper.generic_anus);
|
||||
}
|
||||
|
|
|
@ -3,13 +3,11 @@ using rjw;
|
|||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_FelineGenitalia : Gene
|
||||
public class Gene_FelineGenitalia : RJW_Gene
|
||||
{
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||
Sexualizer.sexualize_pawn(pawn);
|
||||
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.feline_penis,Genital_Helper.feline_vagina,Genital_Helper.generic_anus);
|
||||
}
|
||||
|
|
|
@ -3,13 +3,11 @@ using rjw;
|
|||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_HumanGenitalia : Gene
|
||||
public class Gene_HumanGenitalia : RJW_Gene
|
||||
{
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||
Sexualizer.sexualize_pawn(pawn);
|
||||
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.average_penis,Genital_Helper.average_vagina,Genital_Helper.average_anus);
|
||||
}
|
||||
|
|
|
@ -3,13 +3,11 @@ using rjw;
|
|||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_OvipositorGenitalia : Gene
|
||||
public class Gene_OvipositorGenitalia : RJW_Gene
|
||||
{
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||
Sexualizer.sexualize_pawn(pawn);
|
||||
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.ovipositorM,Genital_Helper.ovipositorF,Genital_Helper.insect_anus);
|
||||
}
|
||||
|
|
|
@ -3,13 +3,11 @@ using rjw;
|
|||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_SlimeGenitalia : Gene
|
||||
public class Gene_SlimeGenitalia : RJW_Gene
|
||||
{
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||
Sexualizer.sexualize_pawn(pawn);
|
||||
|
||||
GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.slime_penis,Genital_Helper.slime_vagina,Genital_Helper.slime_anus);
|
||||
}
|
||||
|
|
|
@ -79,5 +79,14 @@ namespace RJW_Genes
|
|||
return candidate.def.defName.ToLower().Contains("bionic") || candidate.def.defName.ToLower().Contains("archo");
|
||||
}
|
||||
|
||||
public static void RemoveAllGenitalia(Pawn pawn)
|
||||
{
|
||||
var parts = Genital_Helper.get_AllPartsHediffList(pawn);
|
||||
foreach (var part in parts)
|
||||
{
|
||||
pawn.health.RemoveHediff(part);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,17 +1,12 @@
|
|||
using Verse;
|
||||
using rjw;
|
||||
using System;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_BigBreasts : Gene
|
||||
public class Gene_BigBreasts : RJW_Gene
|
||||
{
|
||||
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||
Sexualizer.sexualize_pawn(pawn);
|
||||
|
||||
if (pawn.gender == Gender.Female)
|
||||
SizeAdjuster.AdjustAllBreastSizes(pawn,0.5f,1.0f);
|
||||
|
|
|
@ -1,17 +1,11 @@
|
|||
using Verse;
|
||||
using rjw;
|
||||
using System;
|
||||
|
||||
namespace RJW_Genes
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_BigMaleGenitalia : Gene
|
||||
public class Gene_BigMaleGenitalia : RJW_Gene
|
||||
{
|
||||
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||
Sexualizer.sexualize_pawn(pawn);
|
||||
|
||||
SizeAdjuster.AdjustAllPenisSizes(pawn,0.5f,1.0f);
|
||||
}
|
||||
|
|
|
@ -1,17 +1,11 @@
|
|||
using Verse;
|
||||
using rjw;
|
||||
using System;
|
||||
|
||||
namespace RJW_Genes
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_LooseAnus : Gene
|
||||
public class Gene_LooseAnus : RJW_Gene
|
||||
{
|
||||
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||
Sexualizer.sexualize_pawn(pawn);
|
||||
|
||||
SizeAdjuster.AdjustAllAnusSizes(pawn, 0.5f, 1.0f);
|
||||
}
|
||||
|
@ -24,6 +18,5 @@ namespace RJW_Genes
|
|||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,17 +1,11 @@
|
|||
using Verse;
|
||||
using rjw;
|
||||
using System;
|
||||
|
||||
namespace RJW_Genes
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_LooseFemaleGenitalia : Gene
|
||||
public class Gene_LooseFemaleGenitalia : RJW_Gene
|
||||
{
|
||||
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||
Sexualizer.sexualize_pawn(pawn);
|
||||
|
||||
SizeAdjuster.AdjustAllVaginaSizes(pawn, 0.5f, 1.0f);
|
||||
}
|
||||
|
|
|
@ -6,14 +6,12 @@ namespace RJW_Genes
|
|||
/// <summary>
|
||||
/// Dummy Gene that does not alter the genitalia size. Normal RJW Logic and rolled sizes are kept.
|
||||
/// </summary>
|
||||
public class Gene_NormalAnus : Gene
|
||||
public class Gene_NormalAnus : RJW_Gene
|
||||
{
|
||||
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||
Sexualizer.sexualize_pawn(pawn);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,19 +1,16 @@
|
|||
using Verse;
|
||||
using rjw;
|
||||
using rjw;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
/// <summary>
|
||||
/// Dummy Gene that does not alter the genitalia size. Normal RJW Logic and rolled sizes are kept.
|
||||
/// </summary>
|
||||
public class Gene_NormalBreasts : Gene
|
||||
public class Gene_NormalBreasts : RJW_Gene
|
||||
{
|
||||
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||
Sexualizer.sexualize_pawn(pawn);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -6,14 +6,12 @@ namespace RJW_Genes
|
|||
/// <summary>
|
||||
/// Dummy Gene that does not alter the genitalia size. Normal RJW Logic and rolled sizes are kept.
|
||||
/// </summary>
|
||||
public class Gene_NormalFemaleGenitalia : Gene
|
||||
public class Gene_NormalFemaleGenitalia : RJW_Gene
|
||||
{
|
||||
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||
Sexualizer.sexualize_pawn(pawn);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,19 +1,14 @@
|
|||
using Verse;
|
||||
using rjw;
|
||||
|
||||
namespace RJW_Genes
|
||||
namespace RJW_Genes
|
||||
{
|
||||
/// <summary>
|
||||
/// Dummy Gene that does not alter the genitalia size. Normal RJW Logic and rolled sizes are kept.
|
||||
/// </summary>
|
||||
public class Gene_NormalMaleGenitalia : Gene
|
||||
public class Gene_NormalMaleGenitalia : RJW_Gene
|
||||
{
|
||||
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||
Sexualizer.sexualize_pawn(pawn);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,17 +1,11 @@
|
|||
using Verse;
|
||||
using rjw;
|
||||
using System;
|
||||
|
||||
namespace RJW_Genes
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_SmallBreasts : Gene
|
||||
public class Gene_SmallBreasts : RJW_Gene
|
||||
{
|
||||
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||
Sexualizer.sexualize_pawn(pawn);
|
||||
|
||||
SizeAdjuster.AdjustAllBreastSizes(pawn, 0.0f, 0.5f);
|
||||
}
|
||||
|
|
|
@ -1,17 +1,11 @@
|
|||
using Verse;
|
||||
using rjw;
|
||||
using System;
|
||||
|
||||
namespace RJW_Genes
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_SmallMaleGenitalia : Gene
|
||||
public class Gene_SmallMaleGenitalia : RJW_Gene
|
||||
{
|
||||
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||
Sexualizer.sexualize_pawn(pawn);
|
||||
|
||||
SizeAdjuster.AdjustAllPenisSizes(pawn,0.0f,0.5f);
|
||||
}
|
||||
|
|
|
@ -1,17 +1,11 @@
|
|||
using Verse;
|
||||
using rjw;
|
||||
using System;
|
||||
|
||||
namespace RJW_Genes
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_TightAnus : Gene
|
||||
public class Gene_TightAnus : RJW_Gene
|
||||
{
|
||||
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||
Sexualizer.sexualize_pawn(pawn);
|
||||
|
||||
SizeAdjuster.AdjustAllAnusSizes(pawn, 0.0f, 0.5f);
|
||||
}
|
||||
|
|
|
@ -1,17 +1,11 @@
|
|||
using Verse;
|
||||
using rjw;
|
||||
using System;
|
||||
|
||||
namespace RJW_Genes
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class Gene_TightFemaleGenitalia : Gene
|
||||
public class Gene_TightFemaleGenitalia : RJW_Gene
|
||||
{
|
||||
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||
Sexualizer.sexualize_pawn(pawn);
|
||||
|
||||
SizeAdjuster.AdjustAllVaginaSizes(pawn, 0.0f, 0.5f);
|
||||
}
|
||||
|
|
16
Source/Genes/RJW_Gene.cs
Normal file
16
Source/Genes/RJW_Gene.cs
Normal file
|
@ -0,0 +1,16 @@
|
|||
using rjw;
|
||||
using Verse;
|
||||
|
||||
namespace RJW_Genes
|
||||
{
|
||||
public class RJW_Gene : Gene
|
||||
{
|
||||
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
|
||||
Sexualizer.sexualize_pawn(pawn);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue