genitalia addition

This commit is contained in:
Jaaldabaoth 2024-05-25 01:13:00 +02:00
parent 8159bb792b
commit 7dbef0d19a
18 changed files with 559 additions and 39 deletions

View file

@ -1,7 +1,7 @@
<ModMetaData>
<name>RJW Genes</name>
<author>Vegapnk</author>
<packageId>Vegapnk.rjw.genes</packageId>
<author>jaaldabaoth</author>
<packageId>jaaldabaoth.rjw.genes</packageId>
<supportedVersions>
<li>1.5</li>
</supportedVersions>

Binary file not shown.

View file

@ -146,13 +146,11 @@
<li>BreastAmount</li>
</exclusionTags>
</GeneDef>
<!--
See Comment in `RJW_Genes.Gene_UdderBreasts` why this is currently commented out.
<GeneDef ParentName="GeneExtraGenitaliaBase">
<defName>rjw_genes_udder</defName>
<label>udder</label>
<description>Carriers of this gene have udders instead of breasts.</description>
<description>Carriers of this gene have udders and breasts.</description>
<iconPath>Things/Mote/Heart</iconPath>
<geneClass>RJW_Genes.Gene_UdderBreasts</geneClass>
<displayOrderInCategory>711</displayOrderInCategory>
@ -160,5 +158,5 @@
<li>BreastAmount</li>
</exclusionTags>
</GeneDef>
-->
</Defs>

View file

@ -106,6 +106,87 @@
<displayOrderInCategory>807</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_Ghost_genitalia</defName>
<label>ghost genitalia</label>
<description>Carriers of this gene have ghost genitalia.</description>
<iconPath>Genes/Icons/Placeholder</iconPath>
<geneClass>RJW_Genes.Gene_GhostGenitalia</geneClass>
<displayOrderInCategory>807</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_Golem_genitalia</defName>
<label>golem genitalia</label>
<description>Carriers of this gene have rocky golem genitalia.</description>
<iconPath>Genes/Icons/Placeholder</iconPath>
<geneClass>RJW_Genes.Gene_GolemGenitalia</geneClass>
<displayOrderInCategory>807</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_Marine_genitalia</defName>
<label>marine genitalia</label>
<description>Carriers of this gene have marine mammal like genitalia.</description>
<iconPath>Genes/Icons/Placeholder</iconPath>
<geneClass>RJW_Genes.Gene_MarineGenitalia</geneClass>
<displayOrderInCategory>807</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_Necro_genitalia</defName>
<label>undead genitalia</label>
<description>Carriers of this gene have necrotic undead genitalia.</description>
<iconPath>Genes/Icons/Placeholder</iconPath>
<geneClass>RJW_Genes.Gene_NecroGenitalia</geneClass>
<displayOrderInCategory>807</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_Needle_genitalia</defName>
<label>needle genitalia</label>
<description>Carriers of this gene have marine very thin genitalia.</description>
<iconPath>Genes/Icons/Placeholder</iconPath>
<geneClass>RJW_Genes.Gene_NeedleGenitalia</geneClass>
<displayOrderInCategory>807</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_Orc_genitalia</defName>
<label>orc genitalia</label>
<description>Carriers of this gene have orc genitalia.</description>
<iconPath>Genes/Icons/Placeholder</iconPath>
<geneClass>RJW_Genes.Gene_OrcGenitalia</geneClass>
<displayOrderInCategory>807</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_Pig_genitalia</defName>
<label>screw genitalia</label>
<description>Carriers of this gene have screw genitalia.</description>
<iconPath>Genes/Icons/Placeholder</iconPath>
<geneClass>RJW_Genes.Gene_PigGenitalia</geneClass>
<displayOrderInCategory>807</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_Tentacle_genitalia</defName>
<label>alien genitalia</label>
<description>Carriers of this gene have alien genitalia.</description>
<iconPath>Genes/Icons/Placeholder</iconPath>
<geneClass>RJW_Genes.Gene_TentacleGenitalia</geneClass>
<displayOrderInCategory>807</displayOrderInCategory>
</GeneDef>
<GeneDef ParentName="GeneGenitalTypeBase">
<defName>rjw_genes_ovipositor_genitalia</defName>
<label>insect genitalia</label>

View file

@ -0,0 +1,152 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<rjw.HediffDef_PartBase ParentName="NaturalPrivatePartPenis">
<defName>NeedlePenis</defName>
<label>needle penis</label>
<labelNoun>a needle penis</labelNoun>
<description>A long thin needle penis</description>
<descriptionHyperlinks><ThingDef>NeedlePenis</ThingDef></descriptionHyperlinks>
<spawnThingOnRemoved>NeedlePenis</spawnThingOnRemoved>
<modExtensions>
<li Class="rjw.PartProps">
<props>
<li>Thin</li>
<li>Long</li>
</props>
</li>
</modExtensions>
</rjw.HediffDef_PartBase>
<rjw.HediffDef_PartBase ParentName="NaturalPrivatePartPenis">
<defName>PigPenis</defName>
<label>screw penis</label>
<labelNoun>a screw penis</labelNoun>
<description>A large screw penis.</description>
<descriptionHyperlinks><ThingDef>PigPenis</ThingDef></descriptionHyperlinks>
<spawnThingOnRemoved>PigPenis</spawnThingOnRemoved>
<modExtensions>
<li Class="rjw.PartProps">
<props>
<li>Flared</li>
<li>Long</li>
<li>Girthy</li>
</props>
</li>
</modExtensions>
</rjw.HediffDef_PartBase>
<rjw.HediffDef_PartBase ParentName="NaturalPrivatePartPenis">
<defName>MarinePenis</defName>
<label>marine penis</label>
<labelNoun>a marine penis</labelNoun>
<description>A penis similar to those of marine mammals.</description>
<descriptionHyperlinks><ThingDef>MarinePenis</ThingDef></descriptionHyperlinks>
<spawnThingOnRemoved>MarinePenis</spawnThingOnRemoved>
<modExtensions>
<li Class="rjw.PartProps">
<props>
<li>Sheathed</li>
<li>Long</li>
</props>
</li>
</modExtensions>
</rjw.HediffDef_PartBase>
<rjw.HediffDef_PartBase ParentName="NaturalPrivatePartPenis">
<defName>TentaclePenis</defName>
<label>alien penis</label>
<labelNoun>an alien penis</labelNoun>
<description>A alien penis featuring multiples tentacles.</description>
<descriptionHyperlinks><ThingDef>TentaclePenis</ThingDef></descriptionHyperlinks>
<spawnThingOnRemoved>TentaclePenis</spawnThingOnRemoved>
<modExtensions>
<li Class="rjw.PartProps">
<props>
<li>Multiple</li>
<li>Sheathed</li>
<li>Long</li>
</props>
</li>
</modExtensions>
</rjw.HediffDef_PartBase>
<rjw.HediffDef_PartBase ParentName="NaturalPrivatePartPenis">
<defName>GolemPenis</defName>
<label>golem penis</label>
<labelNoun>an golem penis</labelNoun>
<description>A large rocky golem penis.</description>
<descriptionHyperlinks><ThingDef>GolemPenis</ThingDef></descriptionHyperlinks>
<spawnThingOnRemoved>GolemPenis</spawnThingOnRemoved>
<modExtensions>
<li Class="rjw.PartProps">
<props>
<li>Long</li>
<li>Girthy</li>
<li>Barbed</li>
</props>
</li>
</modExtensions>
</rjw.HediffDef_PartBase>
<rjw.HediffDef_PartBase ParentName="NaturalPrivatePartPenis">
<defName>OrcPenis</defName>
<label>orc penis</label>
<labelNoun>an orc penis</labelNoun>
<description>A large orc penis.</description>
<descriptionHyperlinks><ThingDef>OrcPenis</ThingDef></descriptionHyperlinks>
<spawnThingOnRemoved>OrcPenis</spawnThingOnRemoved>
<modExtensions>
<li Class="rjw.PartProps">
<props>
<li>Long</li>
<li>Girthy</li>
</props>
</li>
</modExtensions>
</rjw.HediffDef_PartBase>
<rjw.HediffDef_PartBase ParentName="NaturalPrivatePartPenis">
<defName>GhostPenis</defName>
<label>ghost penis</label>
<labelNoun>an ghost penis</labelNoun>
<description>A evanescent ghost penis, you can barely feel it.</description>
<descriptionHyperlinks><ThingDef>GhostPenis</ThingDef></descriptionHyperlinks>
<spawnThingOnRemoved>GhostPenis</spawnThingOnRemoved>
<modExtensions>
<li Class="rjw.PartProps">
<props>
<li>Thin</li>
<li>Sheathed</li>
</props>
</li>
</modExtensions>
</rjw.HediffDef_PartBase>
<rjw.HediffDef_PartBase ParentName="NaturalPrivatePartPenis">
<defName>NecroPenis</defName>
<label>undead penis</label>
<labelNoun>an undead penis</labelNoun>
<description>A rotten, reanimated penis.</description>
<descriptionHyperlinks><ThingDef>NecroPenis</ThingDef></descriptionHyperlinks>
<spawnThingOnRemoved>NecroPenis</spawnThingOnRemoved>
<modExtensions>
<li Class="rjw.PartProps">
<props>
<li>Long</li>
<li>Girthy</li>
</props>
</li>
</modExtensions>
</rjw.HediffDef_PartBase>
<rjw.HediffDef_PartBase ParentName="NaturalPrivatePartVagina">
<defName>GhostVagina</defName>
<label>ghost vagina</label>
<labelNoun>a ghost vagina</labelNoun>
<description>A evanescent ghost vagina, you can barely feel it.</description>
<descriptionHyperlinks><ThingDef>GhostVagina</ThingDef></descriptionHyperlinks>
<spawnThingOnRemoved>GhostVagina</spawnThingOnRemoved>
<modExtensions>
<li Class="rjw.PartProps">
<props>
<li>Tight</li>
<li>Deep</li>
</props>
</li>
</modExtensions>
</rjw.HediffDef_PartBase>
</Defs>

View file

@ -0,0 +1,96 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<ThingDef ParentName="rjw_BodyPartNaturalBaseGenMale">
<defName>NeedlePenis</defName>
<label>needle penis</label>
<description>A long thin needle penis</description>
<statBases>
<MarketValue>250</MarketValue>
<Mass>0.40</Mass>
</statBases>
</ThingDef>
<ThingDef ParentName="rjw_BodyPartNaturalBaseGenMale">
<defName>PigPenis</defName>
<label>screw penis</label>
<description>A large screw penis.</description>
<statBases>
<MarketValue>250</MarketValue>
<Mass>0.40</Mass>
</statBases>
</ThingDef>
<ThingDef ParentName="rjw_BodyPartNaturalBaseGenMale">
<defName>MarinePenis</defName>
<label>marine penis</label>
<description>A penis similar to those of marine mammals.</description>
<statBases>
<MarketValue>250</MarketValue>
<Mass>0.40</Mass>
</statBases>
</ThingDef>
<ThingDef ParentName="rjw_BodyPartNaturalBaseGenMale">
<defName>TentaclePenis</defName>
<label>alien penis</label>
<description>A alien penis featuring multiples tentacles.</description>
<statBases>
<MarketValue>250</MarketValue>
<Mass>0.40</Mass>
</statBases>
</ThingDef>
<ThingDef ParentName="rjw_BodyPartNaturalBaseGenMale">
<defName>GolemPenis</defName>
<label>golem penis</label>
<description>A large rocky golem penis.</description>
<statBases>
<MarketValue>250</MarketValue>
<Mass>0.40</Mass>
</statBases>
</ThingDef>
<ThingDef ParentName="rjw_BodyPartNaturalBaseGenMale">
<defName>OrcPenis</defName>
<label>orc penis</label>
<description>A large orc penis.</description>
<statBases>
<MarketValue>250</MarketValue>
<Mass>0.40</Mass>
</statBases>
</ThingDef>
<ThingDef ParentName="rjw_BodyPartNaturalBaseGenMale">
<defName>GhostPenis</defName>
<label>ghost penis</label>
<description>A evanescent ghost penis, you can barely feel it.</description>
<statBases>
<MarketValue>250</MarketValue>
<Mass>0.40</Mass>
</statBases>
</ThingDef>
<ThingDef ParentName="rjw_BodyPartNaturalBaseGenMale">
<defName>NecroPenis</defName>
<label>undead penis</label>
<description>A rotten, reanimated penis.</description>
<statBases>
<MarketValue>250</MarketValue>
<Mass>0.40</Mass>
</statBases>
</ThingDef>
<ThingDef ParentName="rjw_BodyPartNaturalBaseGenMale">
<defName>GhostVagina</defName>
<label>ghost vagina</label>
<descriptionHyperlinks><ThingDef>GhostVagina</ThingDef></descriptionHyperlinks>
<statBases>
<MarketValue>250</MarketValue>
<Mass>0.40</Mass>
</statBases>
</ThingDef>
</Defs>

View file

@ -25,6 +25,14 @@ namespace RJW_Genes
public static readonly GeneDef rjw_genes_crocodilian_genitalia;
public static readonly GeneDef rjw_genes_racoon_genitalia;
public static readonly GeneDef rjw_genes_reptilian_genitalia;
public static readonly GeneDef rjw_genes_Ghost_genitalia;
public static readonly GeneDef rjw_genes_Golem_genitalia;
public static readonly GeneDef rjw_genes_Marine_genitalia;
public static readonly GeneDef rjw_genes_Necro_genitalia;
public static readonly GeneDef rjw_genes_Needle_genitalia;
public static readonly GeneDef rjw_genes_Orc_genitalia;
public static readonly GeneDef rjw_genes_Pig_genitalia;
public static readonly GeneDef rjw_genes_Tentacle_genitalia;
// Extra Genitalia
public static readonly GeneDef rjw_genes_extra_penis;
@ -38,6 +46,7 @@ namespace RJW_Genes
public static readonly GeneDef rjw_genes_futa;
public static readonly GeneDef rjw_genes_femboy;
public static readonly GeneDef rjw_genes_featureless_chest;
public static readonly GeneDef rjw_genes_udder;
// Genitalia Sizes
public static readonly GeneDef rjw_genes_big_male_genitalia;

View file

@ -14,21 +14,12 @@ namespace RJW_Genes
public class Gene_UdderBreasts : RJW_Gene
{
Hediff removed_breasts;
Hediff added_udders;
public override void PostMake()
{
base.PostMake();
// Breasts are replaced for female,trap and futa pawns
if ( removed_breasts == null
&& (GenderUtility.IsFemale(pawn) || GenderHelper.GetSex(pawn) == GenderHelper.Sex.futa || GenderHelper.GetSex(pawn) == GenderHelper.Sex.trap)
)
{
RemoveButStoreBreasts();
AddUdders();
}
}
@ -36,42 +27,31 @@ namespace RJW_Genes
{
base.PostAdd();
// Breasts are replaced for female,trap and futa pawns
if (removed_breasts == null
&& (GenderUtility.IsFemale(pawn) || GenderHelper.GetSex(pawn) == GenderHelper.Sex.futa || GenderHelper.GetSex(pawn) == GenderHelper.Sex.trap)
)
{
RemoveButStoreBreasts();
AddUdders();
}
AddUdders();
}
public override void PostRemove()
{
base.PostRemove();
// Re-Add the old breasts
if (removed_breasts != null)
pawn.health.AddHediff(removed_breasts);
if (added_udders != null)
pawn.health.RemoveHediff(added_udders);
}
internal void RemoveButStoreBreasts()
{
var partBPR = Genital_Helper.get_breastsBPR(pawn);
Hediff breastsToRemove = Genital_Helper.get_AllPartsHediffList(pawn).FindLast(x => GenitaliaUtility.IsBreasts(x));
if (breastsToRemove != null)
{
removed_breasts = breastsToRemove;
pawn.health.RemoveHediff(breastsToRemove);
}
}
internal void AddUdders()
{
CompHediffBodyPart CompHediff = null;
BodyPartRecord bpr = Genital_Helper.get_uddersBPR(pawn);
added_udders = pawn.health.AddHediff(Genital_Helper.udder_breasts, bpr);
added_udders.TryGetComp<rjw.CompHediffBodyPart>();
if (CompHediff != null)
{
CompHediff.initComp(pawn);
CompHediff.updatesize();
}
}
}

View file

@ -0,0 +1,19 @@
using rjw;
using Verse;
namespace RJW_Genes
{
public class Genital_Helper_2
{
public static HediffDef NeedlePenis = HediffDef.Named("NeedlePenis");
public static HediffDef PigPenis = HediffDef.Named("PigPenis");
public static HediffDef MarinePenis = HediffDef.Named("MarinePenis");
public static HediffDef TentaclePenis = HediffDef.Named("TentaclePenis");
public static HediffDef GolemPenis = HediffDef.Named("GolemPenis");
public static HediffDef OrcPenis = HediffDef.Named("OrcPenis");
public static HediffDef GhostPenis = HediffDef.Named("GhostPenis");
public static HediffDef NecroPenis = HediffDef.Named("NecroPenis");
public static HediffDef GhostVagina = HediffDef.Named("GhostVagina");
}
}

View file

@ -0,0 +1,22 @@
using Verse;
using rjw;
namespace RJW_Genes
{
public class Gene_GhostGenitalia : RJW_Gene
{
public override void PostMake()
{
base.PostMake();
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.GhostPenis, Genital_Helper_2.GhostVagina, Genital_Helper.average_anus);
}
public override void PostAdd()
{
base.PostAdd();
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.GhostPenis, Genital_Helper_2.GhostVagina, Genital_Helper.average_anus);
}
}
}

View file

@ -0,0 +1,22 @@
using Verse;
using rjw;
namespace RJW_Genes
{
public class Gene_GolemGenitalia : RJW_Gene
{
public override void PostMake()
{
base.PostMake();
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.GolemPenis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
}
public override void PostAdd()
{
base.PostAdd();
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.GolemPenis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
}
}
}

View file

@ -0,0 +1,22 @@
using Verse;
using rjw;
namespace RJW_Genes
{
public class Gene_MarineGenitalia : RJW_Gene
{
public override void PostMake()
{
base.PostMake();
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.MarinePenis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
}
public override void PostAdd()
{
base.PostAdd();
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.MarinePenis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
}
}
}

View file

@ -0,0 +1,22 @@
using Verse;
using rjw;
namespace RJW_Genes
{
public class Gene_NecroGenitalia : RJW_Gene
{
public override void PostMake()
{
base.PostMake();
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.NecroPenis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
}
public override void PostAdd()
{
base.PostAdd();
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.NecroPenis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
}
}
}

View file

@ -0,0 +1,22 @@
using Verse;
using rjw;
namespace RJW_Genes
{
public class Gene_NeedleGenitalia : RJW_Gene
{
public override void PostMake()
{
base.PostMake();
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.NeedlePenis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
}
public override void PostAdd()
{
base.PostAdd();
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.NeedlePenis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
}
}
}

View file

@ -0,0 +1,22 @@
using Verse;
using rjw;
namespace RJW_Genes
{
public class Gene_OrcGenitalia : RJW_Gene
{
public override void PostMake()
{
base.PostMake();
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.OrcPenis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
}
public override void PostAdd()
{
base.PostAdd();
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.OrcPenis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
}
}
}

View file

@ -0,0 +1,22 @@
using Verse;
using rjw;
namespace RJW_Genes
{
public class Gene_PigGenitalia : RJW_Gene
{
public override void PostMake()
{
base.PostMake();
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.PigPenis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
}
public override void PostAdd()
{
base.PostAdd();
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.PigPenis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
}
}
}

View file

@ -0,0 +1,22 @@
using Verse;
using rjw;
namespace RJW_Genes
{
public class Gene_TentacleGenitalia : RJW_Gene
{
public override void PostMake()
{
base.PostMake();
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.TentaclePenis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
}
public override void PostAdd()
{
base.PostAdd();
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper_2.TentaclePenis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
}
}
}

View file

@ -84,10 +84,18 @@
<Compile Include="Genes\GenitaliaSize\Gene_BigMaleGenitalia.cs" />
<Compile Include="Genes\GenitaliaSize\Patch_ResizingOnAdulthood.cs" />
<Compile Include="Genes\GenitaliaSize\SizeAdjuster.cs" />
<Compile Include="Genes\Genitalia\Gene_TentacleGenitalia.cs" />
<Compile Include="Genes\Genitalia\Gene_GolemGenitalia.cs" />
<Compile Include="Genes\Genitalia\Gene_OrcGenitalia.cs" />
<Compile Include="Genes\Genitalia\Gene_GhostGenitalia.cs" />
<Compile Include="Genes\Genitalia\Gene_NecroGenitalia.cs" />
<Compile Include="Genes\Genitalia\Gene_MarineGenitalia.cs" />
<Compile Include="Genes\Genitalia\Gene_PigGenitalia.cs" />
<Compile Include="Genes\Genitalia\Gene_ReptilianGenitalia.cs" />
<Compile Include="Genes\Genitalia\Gene_CrocodilianGenitalia.cs" />
<Compile Include="Genes\Genitalia\Gene_RacoonGenitalia.cs" />
<Compile Include="Genes\Genitalia\Gene_DemonicGenitaliaTentacle.cs" />
<Compile Include="Genes\Genitalia\Gene_NeedleGenitalia.cs" />
<Compile Include="Genes\Genitalia\Gene_SlimeGenitalia.cs" />
<Compile Include="Genes\Genitalia\Gene_DragonGenitalia.cs" />
<Compile Include="Genes\Genitalia\Gene_FelineGenitalia.cs" />
@ -97,6 +105,7 @@
<Compile Include="Genes\Genitalia\Gene_EquineGenitalia.cs" />
<Compile Include="Genes\Genitalia\GenitaliaChanger.cs" />
<Compile Include="Genes\Patch_AddNotifyOnGeneration.cs" />
<Compile Include="Genes\Genital_Helper_2.cs" />
<Compile Include="Genes\Special\Defs\AgeTransferExtension.cs" />
<Compile Include="Genes\Special\Defs\HormonalSalivaExtension.cs" />
<Compile Include="Genes\Special\Patches\Patch_AgeDrain.cs" />