diff --git a/Common/Assemblies/Rjw-Genes.dll b/Common/Assemblies/Rjw-Genes.dll
index c4c89b1..7c86465 100644
Binary files a/Common/Assemblies/Rjw-Genes.dll and b/Common/Assemblies/Rjw-Genes.dll differ
diff --git a/Common/Defs/Xenotypes/Succubus.xml b/Common/Defs/Xenotypes/Succubus.xml
index 66e73b6..b3967c6 100644
--- a/Common/Defs/Xenotypes/Succubus.xml
+++ b/Common/Defs/Xenotypes/Succubus.xml
@@ -28,7 +28,6 @@
rjw_genes_female_only
rjw_genes_lifeforce
rjw_genes_lifeforce_drain
- rjw_genes_cum_eater
rjw_genes_vaginal_absorber
rjw_genes_anal_absorber
diff --git a/Source/Genes/Life_Force/Patch_Vanilla_Inheritance_Fertilin.cs b/Source/Genes/Life_Force/Patch_Vanilla_Inheritance_Fertilin.cs
new file mode 100644
index 0000000..94c427f
--- /dev/null
+++ b/Source/Genes/Life_Force/Patch_Vanilla_Inheritance_Fertilin.cs
@@ -0,0 +1,62 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using HarmonyLib;
+using RimWorld;
+using Verse;
+
+namespace RJW_Genes
+{
+ ///
+ /// This Patch is applied to add a absorption gene for fertilin if it has none, but it does have the fertilin gene
+ /// First tries to get one from the parents else chooses one of them at random
+ /// the genes are determined and "simply added".
+ ///
+ [HarmonyPatch(typeof(PregnancyUtility), "GetInheritedGeneSet", new Type[]
+ {
+ typeof(Pawn),
+ typeof(Pawn),
+ //typeof(bool)
+ }
+ )]
+ public static class PatchVanillaPregnancyFertilin
+ {
+ [HarmonyPostfix]
+ public static void InheritedGenes(Pawn father, Pawn mother, ref GeneSet __result)
+ {
+ //Also make a setting for this
+ if (__result.GenesListForReading.Contains(GeneDefOf.rjw_genes_lifeforce))
+ {
+ List gene_list = __result.GenesListForReading;
+
+ //If no absorption gene get one from the parents, else a random one
+ if(!(gene_list.Contains(GeneDefOf.rjw_genes_drainer) || gene_list.Contains(GeneDefOf.rjw_genes_cum_eater)
+ || gene_list.Contains(GeneDefOf.rjw_genes_vaginal_absorber) || gene_list.Contains(GeneDefOf.rjw_genes_anal_absorber)))
+ {
+ List absorption_genes_list = new List { GeneDefOf.rjw_genes_drainer, GeneDefOf.rjw_genes_cum_eater
+ , GeneDefOf.rjw_genes_vaginal_absorber, GeneDefOf.rjw_genes_anal_absorber };
+ List absorption_genes_parents = new List();
+ foreach (GeneDef geneDef in absorption_genes_list)
+ {
+ if(mother.genes != null && mother.genes.HasGene(geneDef))
+ {
+ absorption_genes_parents.Add(geneDef);
+ }
+ if (father.genes != null && father.genes.HasGene(geneDef))
+ {
+ absorption_genes_parents.Add(geneDef);
+ }
+ }
+ if (!absorption_genes_parents.NullOrEmpty())
+ {
+ __result.AddGene(absorption_genes_parents.RandomElement());
+ }
+ else
+ {
+ __result.AddGene(absorption_genes_list.RandomElement());
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/Source/Rjw-Genes.csproj b/Source/Rjw-Genes.csproj
index 165662b..f7ab5e9 100644
--- a/Source/Rjw-Genes.csproj
+++ b/Source/Rjw-Genes.csproj
@@ -141,6 +141,7 @@
+