diff --git a/1.6/Assemblies/Rjw-Genes.dll b/1.6/Assemblies/Rjw-Genes.dll
index 4778bf2..bb86a3a 100644
Binary files a/1.6/Assemblies/Rjw-Genes.dll and b/1.6/Assemblies/Rjw-Genes.dll differ
diff --git a/1.6/Defs/GeneDefs/GeneDefs_ExtraGenitalia.xml b/1.6/Defs/GeneDefs/GeneDefs_ExtraGenitalia.xml
index eec2a22..6bb3aea 100644
--- a/1.6/Defs/GeneDefs/GeneDefs_ExtraGenitalia.xml
+++ b/1.6/Defs/GeneDefs/GeneDefs_ExtraGenitalia.xml
@@ -8,6 +8,9 @@
Genes/Icons/RJW_Genes_Endogene_Background
Genes/Icons/RJW_Genes_Xenogene_Background
+
+ 20
+
diff --git a/1.6/Defs/GeneDefs/GeneDefs_Fluids.xml b/1.6/Defs/GeneDefs/GeneDefs_Fluids.xml
index eb68666..bf99e12 100644
--- a/1.6/Defs/GeneDefs/GeneDefs_Fluids.xml
+++ b/1.6/Defs/GeneDefs/GeneDefs_Fluids.xml
@@ -11,6 +11,9 @@
Genes/Icons/RJW_Genes_Endogene_Background
Genes/Icons/RJW_Genes_Xenogene_Background
+
+ 50
+
@@ -72,6 +75,9 @@
Genes/Icons/RJW_Genes_Endogene_Background
Genes/Icons/RJW_Genes_Xenogene_Background
+
+ 50
+
diff --git a/1.6/Defs/GeneDefs/GeneDefs_GenitaliaSizes.xml b/1.6/Defs/GeneDefs/GeneDefs_GenitaliaSizes.xml
index 208b193..a2c66f9 100644
--- a/1.6/Defs/GeneDefs/GeneDefs_GenitaliaSizes.xml
+++ b/1.6/Defs/GeneDefs/GeneDefs_GenitaliaSizes.xml
@@ -5,11 +5,14 @@
-
- Genes/Icons/RJW_Genes_Endogene_Background
- Genes/Icons/RJW_Genes_Xenogene_Background
-
-
+
+ Genes/Icons/RJW_Genes_Endogene_Background
+ Genes/Icons/RJW_Genes_Xenogene_Background
+
+
+ 50
+
+
diff --git a/1.6/Defs/GeneDefs/GeneDefs_GenitaliaTypes.xml b/1.6/Defs/GeneDefs/GeneDefs_GenitaliaTypes.xml
index 543c542..244c72f 100644
--- a/1.6/Defs/GeneDefs/GeneDefs_GenitaliaTypes.xml
+++ b/1.6/Defs/GeneDefs/GeneDefs_GenitaliaTypes.xml
@@ -14,6 +14,9 @@
Genes/Icons/RJW_Genes_Endogene_Background
Genes/Icons/RJW_Genes_Xenogene_Background
+
+ 30
+
diff --git a/1.6/Patches/Xenotypes/PatchBSSneks.xml b/1.6/Patches/Xenotypes/PatchBSSneks.xml
index 173a3df..be6b17a 100644
--- a/1.6/Patches/Xenotypes/PatchBSSneks.xml
+++ b/1.6/Patches/Xenotypes/PatchBSSneks.xml
@@ -11,9 +11,9 @@
Defs/XenotypeDef[defName = "LoS_Lamia"
or defName = "LoS_TrueLamia"
or defName = "Naga"
- or defName = "Los_Adderman"
- or defName = "Los_Anacondaman"
- or defName = "Los_Snakeman"]/genes
+ or defName = "LoS_Adderman"
+ or defName = "LoS_Anacondaman"
+ or defName = "LoS_Snakeman"]/genes
rjw_genes_reptilian_genitalia
diff --git a/1.6/Patches/Xenotypes/PatchBiotechNyaron.xml b/1.6/Patches/Xenotypes/PatchBiotechNyaron.xml
deleted file mode 100644
index 9f32522..0000000
--- a/1.6/Patches/Xenotypes/PatchBiotechNyaron.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
- Biotech Nyaron
-
-
- Defs/XenotypeDef[defName="Nyaron"]/genes
-
- rjw_genes_feline_genitalia
-
-
-
-
\ No newline at end of file
diff --git a/1.6/Patches/Xenotypes/PatchImphileeXeno.xml b/1.6/Patches/Xenotypes/PatchImphileeXeno.xml
deleted file mode 100644
index 4a8655f..0000000
--- a/1.6/Patches/Xenotypes/PatchImphileeXeno.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-
-
- Imphilee Xeno
-
-
- Defs/XenotypeDef[defName="LD_Imphilee"]/genes
-
- rjw_genes_tight_female_genitalia
- rjw_genes_small_breasts
- rjw_genes_elasticity
- rjw_genes_demonic_genitalia
-
-
-
-
-
- Imphilee Xeno
-
-
- Defs/XenotypeDef[defName="LD_Imphilee_Overlord"]/genes
-
- rjw_genes_tight_female_genitalia
- rjw_genes_small_breasts
- rjw_genes_elasticity
- rjw_genes_demonic_genitalia
- rjw_genes_rapist
-
-
-
-
-
-
diff --git a/1.6/Patches/Xenotypes/PatchNyaron.xml b/1.6/Patches/Xenotypes/PatchNyaron.xml
index 4ad40a5..8d9848a 100644
--- a/1.6/Patches/Xenotypes/PatchNyaron.xml
+++ b/1.6/Patches/Xenotypes/PatchNyaron.xml
@@ -12,4 +12,16 @@
+
+
+ [CAP]Biotech Nyaron HAR Addition
+
+
+ Defs/XenotypeDef[defName="Nyaron"]/genes
+
+ rjw_genes_tight_female_genitalia
+ rjw_genes_feline_genitalia
+
+
+
\ No newline at end of file
diff --git a/1.6/Patches/Xenotypes/PatchPapou.xml b/1.6/Patches/Xenotypes/PatchPapou.xml
index 39a6e81..361aa89 100644
--- a/1.6/Patches/Xenotypes/PatchPapou.xml
+++ b/1.6/Patches/Xenotypes/PatchPapou.xml
@@ -2,10 +2,10 @@
- Papou Race : emotional birds
+ Papou Xenotype: Emotional Birds (Continued)
- Defs/XenotypeDef[defName="papago"]/genes
+ Defs/XenotypeDef[defName="Papago"]/genes
rjw_genes_orgasm_rush
rjw_genes_tight_female_genitalia
diff --git a/1.6/Patches/Xenotypes/PatchRoosFaun.xml b/1.6/Patches/Xenotypes/PatchRoosFaun.xml
index 64ee8ad..7d27b2f 100644
--- a/1.6/Patches/Xenotypes/PatchRoosFaun.xml
+++ b/1.6/Patches/Xenotypes/PatchRoosFaun.xml
@@ -7,7 +7,7 @@
Defs/XenotypeDef[defName="RBSF_Faun"]/genes
- rjw_genes_equine_genitalia
+ rjw_genes_Needle_genitalia
rjw_genes_zoophile
rjw_genes_mating_call
rjw_genes_tight_female_genitalia
diff --git a/1.6/Patches/Xenotypes/PatchRoosSatyr.xml b/1.6/Patches/Xenotypes/PatchRoosSatyr.xml
index b82b1e1..e2bdfe7 100644
--- a/1.6/Patches/Xenotypes/PatchRoosSatyr.xml
+++ b/1.6/Patches/Xenotypes/PatchRoosSatyr.xml
@@ -7,8 +7,10 @@
Defs/XenotypeDef[defName="RBSF_Satyr"]/genes
+ rjw_genes_equine_genitalia
rjw_genes_aphrodisiac_pheromones
rjw_genes_much_fluid
+ rjw_genes_zoophile
diff --git a/1.6/Patches/Xenotypes/PatchPigskins.xml b/1.6/Patches/Xenotypes/PatchVREPigskins.xml
similarity index 100%
rename from 1.6/Patches/Xenotypes/PatchPigskins.xml
rename to 1.6/Patches/Xenotypes/PatchVREPigskins.xml
diff --git a/1.6/Patches/Xenotypes/PatchSaurid.xml b/1.6/Patches/Xenotypes/PatchVRESaurid.xml
similarity index 100%
rename from 1.6/Patches/Xenotypes/PatchSaurid.xml
rename to 1.6/Patches/Xenotypes/PatchVRESaurid.xml
diff --git a/1.6/Rjw-Genes.sln b/1.6/Rjw-Genes.sln
index 86df24b..3cee1cf 100644
--- a/1.6/Rjw-Genes.sln
+++ b/1.6/Rjw-Genes.sln
@@ -15,8 +15,8 @@ Global
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {D7D21B4A-1DA7-41D8-B202-C58CA8FA62AA}.Debug|Any CPU.ActiveCfg = Release|Any CPU
- {D7D21B4A-1DA7-41D8-B202-C58CA8FA62AA}.Debug|Any CPU.Build.0 = Release|Any CPU
+ {D7D21B4A-1DA7-41D8-B202-C58CA8FA62AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D7D21B4A-1DA7-41D8-B202-C58CA8FA62AA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D7D21B4A-1DA7-41D8-B202-C58CA8FA62AA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D7D21B4A-1DA7-41D8-B202-C58CA8FA62AA}.Release|Any CPU.Build.0 = Release|Any CPU
{3BF2C17E-C492-44DA-8BC4-7AF6ADEB6468}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
diff --git a/1.6/Source/Common/Defs/ChanceExtension.cs b/1.6/Source/Common/Defs/ChanceExtension.cs
index ff8b260..111f73e 100644
--- a/1.6/Source/Common/Defs/ChanceExtension.cs
+++ b/1.6/Source/Common/Defs/ChanceExtension.cs
@@ -11,5 +11,4 @@ namespace RJW_Genes
{
public float chance;
}
-
}
diff --git a/1.6/Source/Common/Defs/SexualizerGeneExtension.cs b/1.6/Source/Common/Defs/SexualizerGeneExtension.cs
new file mode 100644
index 0000000..b8fd7e8
--- /dev/null
+++ b/1.6/Source/Common/Defs/SexualizerGeneExtension.cs
@@ -0,0 +1,25 @@
+using Verse;
+
+namespace RJW_Genes
+{
+
+ ///
+ /// Used by the 'On Sexualization' Patch to determine if a gene needs to be applied, and what order to do so.
+ /// This Extension is applied to RJW related genes that Depend on the order they are Applied in,
+ /// using the following basic values
+ ///
+ /// 10 Unused.
+ /// 20 Genes that Alter the Number of sexual parts a Pawn may have. (Includes the Zero Genes?)
+ /// 30 Genes that Alter the type of genitals a Pawn may have.
+ /// 40 Genes that Add a specific genital type to the pawn.
+ /// 50 Genes that alter the values on a pawns genitals such as size or fluid type.
+ ///
+#pragma warning disable CS0649 //Disable the warning for a variable that is 'unset'.
+ internal class SexualizerGeneExtension : DefModExtension
+ {
+
+ public int order;
+
+ }
+#pragma warning restore CS0649
+}
diff --git a/1.6/Source/Common/patches/Patch_RJWSexualizer.cs b/1.6/Source/Common/patches/Patch_RJWSexualizer.cs
new file mode 100644
index 0000000..3deabc1
--- /dev/null
+++ b/1.6/Source/Common/patches/Patch_RJWSexualizer.cs
@@ -0,0 +1,50 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Verse;
+
+namespace RJW_Genes
+{
+ internal static class Patch_RJWSexualizer
+ {
+ ///
+ /// This Harmony patch is called after Sexualiser, and runs all the genes on that pawn that would have not been functional before sexualization.
+ ///
+ public static void ApplyGenesPostfix(Pawn pawn)
+ {
+ //Generate a sorted list of Genes that need to be processed.
+ if (pawn == null) return;
+ Dictionary> geneDict = new Dictionary>();
+ if (pawn.genes == null) return;
+ foreach (Gene curGene in pawn.genes.GenesListForReading)
+ {
+
+ if (!curGene.def.HasModExtension()) continue;
+
+ SexualizerGeneExtension geneExtension = curGene.def.GetModExtension();
+ if (geneDict.ContainsKey(geneExtension.order))
+ {
+ geneDict[geneExtension.order].Add(curGene);
+ }
+ else
+ {
+ geneDict.Add(geneExtension.order, new List { curGene });
+ }
+
+
+ }
+ //Once we have the List, iterate over it to run the relavant functions.
+ List keysList = geneDict.Keys.ToList();
+ keysList.Sort();
+ foreach (int key in keysList)
+ {
+ foreach (var curGene in geneDict[key])
+ {
+ curGene.PostAdd();
+ }
+ }
+ }
+ }
+}
diff --git a/1.6/Source/CumpilationLoader/CumpilationPatcher.csproj b/1.6/Source/CumpilationLoader/CumpilationPatcher.csproj
index 6207e63..025c5d6 100644
--- a/1.6/Source/CumpilationLoader/CumpilationPatcher.csproj
+++ b/1.6/Source/CumpilationLoader/CumpilationPatcher.csproj
@@ -15,7 +15,7 @@
true
- full
+ portable
false
..\..\Mods\Cumpilation\Assemblies\
diff --git a/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraAnus.cs b/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraAnus.cs
index 277691c..527ac35 100644
--- a/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraAnus.cs
+++ b/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraAnus.cs
@@ -16,22 +16,22 @@ namespace RJW_Genes
// Some sources add Genes before they fire, e.g. Character Editor
// This should harden the gene, to solve #19
- if (HasAlreadyTwoAnus())
- {
- return;
- }
+ //if (HasAlreadyTwoAnus())
+ //{
+ // return;
+ //}
- if (additional_anus == null)
- {
- CreateAndAddAnus();
- }
+ //if (additional_anus == null)
+ //{
+ // CreateAndAddAnus();
+ //}
}
public override void PostAdd()
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
-
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
// Some sources add Genes before they fire, e.g. Character Editor
// This should harden the gene, to solve #19
if (HasAlreadyTwoAnus())
diff --git a/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraBreasts.cs b/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraBreasts.cs
index b763a64..64e44d4 100644
--- a/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraBreasts.cs
+++ b/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraBreasts.cs
@@ -16,23 +16,23 @@ namespace RJW_Genes
// Some sources add Genes before they fire, e.g. Character Editor
// This should harden the gene, to solve #19
- if (HasAlreadyTwoBreasts())
- {
- return;
- }
+ //if (HasAlreadyTwoBreasts())
+ //{
+ // return;
+ //}
- // Tits are only added for female pawns!
- if (GenderUtility.IsFemale(pawn) && additional_breasts == null)
- {
- CreateAndAddBreasts();
- }
+ //// Tits are only added for female pawns!
+ //if (GenderUtility.IsFemale(pawn) && additional_breasts == null)
+ //{
+ // CreateAndAddBreasts();
+ //}
}
public override void PostAdd()
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
-
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
// Some sources add Genes before they fire, e.g. Character Editor
// This should harden the gene, to solve #19
if (HasAlreadyTwoBreasts())
diff --git a/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraPenis.cs b/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraPenis.cs
index 5bacdbd..34926d5 100644
--- a/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraPenis.cs
+++ b/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraPenis.cs
@@ -16,23 +16,23 @@ namespace RJW_Genes
// Some sources add Genes before they fire, e.g. Character Editor
// This should harden the gene, to solve #19
- if (HasAlreadyTwoPenis())
- {
- return;
- }
+ //if (HasAlreadyTwoPenis())
+ //{
+ // return;
+ //}
// Penis are only added for male pawns!
- if (GenderUtility.IsMale(pawn) && additional_penis == null)
- {
- CreateAndAddPenis();
- }
+ //if (GenderUtility.IsMale(pawn) && additional_penis == null)
+ //{
+ // CreateAndAddPenis();
+ //}
}
public override void PostAdd()
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
-
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
// Some sources add Genes before they fire, e.g. Character Editor
// This should harden the gene, to solve #19
if (HasAlreadyTwoPenis())
diff --git a/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraVagina.cs b/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraVagina.cs
index 179742b..2771bd6 100644
--- a/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraVagina.cs
+++ b/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraVagina.cs
@@ -21,23 +21,23 @@ namespace RJW_Genes
// Some sources add Genes before they fire, e.g. Character Editor
// This should harden the gene, to solve #19
- if (HasAlreadyTwoVaginas())
- {
- return;
- }
+ //if (HasAlreadyTwoVaginas())
+ //{
+ // return;
+ //}
- // Vaginas are only added for female pawns!
- if (GenderUtility.IsFemale(pawn) && additional_vagina == null)
- {
- CreateAndAddVagina();
- }
+ //// Vaginas are only added for female pawns!
+ //if (GenderUtility.IsFemale(pawn) && additional_vagina == null)
+ //{
+ // CreateAndAddVagina();
+ //}
}
public override void PostAdd()
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
-
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
// Some sources add Genes before they fire, e.g. Character Editor
// This should harden the gene, to solve #19
if (HasAlreadyTwoVaginas())
diff --git a/1.6/Source/Genes/ExtraGenitalia/Gene_FeaturelessChest.cs b/1.6/Source/Genes/ExtraGenitalia/Gene_FeaturelessChest.cs
index df07876..cf0ad0b 100644
--- a/1.6/Source/Genes/ExtraGenitalia/Gene_FeaturelessChest.cs
+++ b/1.6/Source/Genes/ExtraGenitalia/Gene_FeaturelessChest.cs
@@ -11,18 +11,18 @@ namespace RJW_Genes
{
base.PostMake();
- if (removed_breasts == null)
- {
- RemoveButStoreBreasts();
- AddFeaturelessBreast();
- }
+ //if (removed_breasts == null)
+ //{
+ // RemoveButStoreBreasts();
+ // AddFeaturelessBreast();
+ //}
}
public override void PostAdd()
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
-
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
if (removed_breasts == null)
{
RemoveButStoreBreasts();
diff --git a/1.6/Source/Genes/ExtraGenitalia/Gene_Femboy.cs b/1.6/Source/Genes/ExtraGenitalia/Gene_Femboy.cs
index b3e9140..d78043f 100644
--- a/1.6/Source/Genes/ExtraGenitalia/Gene_Femboy.cs
+++ b/1.6/Source/Genes/ExtraGenitalia/Gene_Femboy.cs
@@ -15,6 +15,7 @@ namespace RJW_Genes
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
if (GenderUtility.IsMale(this.pawn) && this.additional_genital == null)
{
this.CreateAndAddVagina();
diff --git a/1.6/Source/Genes/ExtraGenitalia/Gene_Futa.cs b/1.6/Source/Genes/ExtraGenitalia/Gene_Futa.cs
index 011b466..0de91a3 100644
--- a/1.6/Source/Genes/ExtraGenitalia/Gene_Futa.cs
+++ b/1.6/Source/Genes/ExtraGenitalia/Gene_Futa.cs
@@ -19,7 +19,7 @@ namespace RJW_Genes
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
-
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
// If the Pawn is already a Futa, do not do anything. Can Happen by Base-RJW Spawn Chance or potentially races / other mods.
if (IsAlreadyFuta(pawn))
{
diff --git a/1.6/Source/Genes/ExtraGenitalia/Gene_NoAnus.cs b/1.6/Source/Genes/ExtraGenitalia/Gene_NoAnus.cs
index 11f8706..de609a2 100644
--- a/1.6/Source/Genes/ExtraGenitalia/Gene_NoAnus.cs
+++ b/1.6/Source/Genes/ExtraGenitalia/Gene_NoAnus.cs
@@ -13,17 +13,17 @@ namespace RJW_Genes
{
base.PostMake();
- if (removed_anus == null)
- {
- RemoveButStoreAnus();
- }
+ //if (removed_anus == null)
+ //{
+ // RemoveButStoreAnus();
+ //}
}
public override void PostAdd()
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
-
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
if (removed_anus == null)
{
RemoveButStoreAnus();
diff --git a/1.6/Source/Genes/ExtraGenitalia/Gene_NoBreasts.cs b/1.6/Source/Genes/ExtraGenitalia/Gene_NoBreasts.cs
index f1e6aed..acd9135 100644
--- a/1.6/Source/Genes/ExtraGenitalia/Gene_NoBreasts.cs
+++ b/1.6/Source/Genes/ExtraGenitalia/Gene_NoBreasts.cs
@@ -13,18 +13,18 @@ namespace RJW_Genes
{
base.PostMake();
- // Breasts are removed for female pawns!
- if (GenderUtility.IsFemale(pawn) && oldSize < 0)
- {
- RemoveButStoreBreasts();
- }
+ //// Breasts are removed for female pawns!
+ //if (GenderUtility.IsFemale(pawn) && oldSize < 0)
+ //{
+ // RemoveButStoreBreasts();
+ //}
}
public override void PostAdd()
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
-
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
// Breasts are removed for female pawns!
if (GenderUtility.IsFemale(pawn) && oldSize < 0)
{
diff --git a/1.6/Source/Genes/ExtraGenitalia/Gene_NoPenis.cs b/1.6/Source/Genes/ExtraGenitalia/Gene_NoPenis.cs
index 5471309..54e4c20 100644
--- a/1.6/Source/Genes/ExtraGenitalia/Gene_NoPenis.cs
+++ b/1.6/Source/Genes/ExtraGenitalia/Gene_NoPenis.cs
@@ -13,18 +13,18 @@ namespace RJW_Genes
{
base.PostMake();
- // Penis are only removed for male pawns!
- if (GenderUtility.IsMale(pawn) && removed_penis == null)
- {
- RemoveButStorePenis();
- }
+ //// Penis are only removed for male pawns!
+ //if (GenderUtility.IsMale(pawn) && removed_penis == null)
+ //{
+ // RemoveButStorePenis();
+ //}
}
public override void PostAdd()
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
-
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
// Penis are only removed for male pawns!
if (GenderUtility.IsMale(pawn) && removed_penis == null)
{
diff --git a/1.6/Source/Genes/ExtraGenitalia/Gene_NoVagina.cs b/1.6/Source/Genes/ExtraGenitalia/Gene_NoVagina.cs
index c5ec081..29f1be1 100644
--- a/1.6/Source/Genes/ExtraGenitalia/Gene_NoVagina.cs
+++ b/1.6/Source/Genes/ExtraGenitalia/Gene_NoVagina.cs
@@ -14,17 +14,17 @@ namespace RJW_Genes
base.PostMake();
// Vaginas are only removed for female pawns!
- if (GenderUtility.IsFemale(pawn) && removed_vagina == null)
- {
- RemoveButStoreVagina();
- }
+ //if (GenderUtility.IsFemale(pawn) && removed_vagina == null)
+ //{
+ // RemoveButStoreVagina();
+ //}
}
public override void PostAdd()
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
-
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
// Vaginas are only removed for female pawns!
if (GenderUtility.IsFemale(pawn) && removed_vagina == null)
{
diff --git a/1.6/Source/Genes/ExtraGenitalia/Gene_UdderBreasts.cs b/1.6/Source/Genes/ExtraGenitalia/Gene_UdderBreasts.cs
index ce53b43..0fdd0fe 100644
--- a/1.6/Source/Genes/ExtraGenitalia/Gene_UdderBreasts.cs
+++ b/1.6/Source/Genes/ExtraGenitalia/Gene_UdderBreasts.cs
@@ -27,7 +27,7 @@ namespace RJW_Genes
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
-
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
AddUdders();
}
diff --git a/1.6/Source/Genes/Fluid/Genes/Gene_ChangeFluidAmount.cs b/1.6/Source/Genes/Fluid/Genes/Gene_ChangeFluidAmount.cs
index 49c84a2..89bd8f6 100644
--- a/1.6/Source/Genes/Fluid/Genes/Gene_ChangeFluidAmount.cs
+++ b/1.6/Source/Genes/Fluid/Genes/Gene_ChangeFluidAmount.cs
@@ -9,15 +9,16 @@
{
base.PostMake();
- float multipier = FluidUtility.LookupFluidMultiplier(this);
- FluidUtility.MultiplyFluidAmountBy(pawn, multipier);
- has_been_fired = true;
+ //float multipier = FluidUtility.LookupFluidMultiplier(this);
+ //FluidUtility.MultiplyFluidAmountBy(pawn, multipier);
+ //has_been_fired = true;
}
public override void PostAdd()
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
if (!has_been_fired)
{
float multipier = FluidUtility.LookupFluidMultiplier(this);
diff --git a/1.6/Source/Genes/Fluid/Genes/Gene_ChangeFluidType.cs b/1.6/Source/Genes/Fluid/Genes/Gene_ChangeFluidType.cs
index 4745828..1531f7e 100644
--- a/1.6/Source/Genes/Fluid/Genes/Gene_ChangeFluidType.cs
+++ b/1.6/Source/Genes/Fluid/Genes/Gene_ChangeFluidType.cs
@@ -18,6 +18,7 @@ namespace RJW_Genes
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
Apply();
}
diff --git a/1.6/Source/Genes/Gender/Genes/Gene_FemaleOnly.cs b/1.6/Source/Genes/Gender/Genes/Gene_FemaleOnly.cs
index 551f5ea..57d3635 100644
--- a/1.6/Source/Genes/Gender/Genes/Gene_FemaleOnly.cs
+++ b/1.6/Source/Genes/Gender/Genes/Gene_FemaleOnly.cs
@@ -15,8 +15,10 @@ namespace RJW_Genes
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostMake();
- AdjustPawnToFemale();
- GenderUtility.RemoveSexChangeThoughtsIfTooYoung(this.pawn);
+ if (this.Active) {
+ AdjustPawnToFemale();
+ GenderUtility.RemoveSexChangeThoughtsIfTooYoung(this.pawn);
+ }
}
private void AdjustPawnToFemale()
diff --git a/1.6/Source/Genes/Gender/Genes/Gene_GenderFluid.cs b/1.6/Source/Genes/Gender/Genes/Gene_GenderFluid.cs
index 4f530f6..5d6d272 100644
--- a/1.6/Source/Genes/Gender/Genes/Gene_GenderFluid.cs
+++ b/1.6/Source/Genes/Gender/Genes/Gene_GenderFluid.cs
@@ -56,14 +56,16 @@ namespace RJW_Genes
// Case 2: Check every interval if the Chance triggers
else if (pawn.IsHashIntervalTick(change_interval) && (new Random()).NextDouble() < switch_chance)
{
+ // Case 2.A - if the Pawn is Pregnant, do not allow sex change this interval.
+ if (pawn.IsPregnant()) return;
- // Case 2.A) SexChange was blocked, postpone it
+ // Case 2.B) SexChange was blocked, postpone it
if (SexChangeBlocked(pawn))
{
sexChangeWasBlocked |= true;
return;
}
- // Case 2.B) Nothing blocking, change the sex.
+ // Case 2.C) Nothing blocking, change the sex.
else { ChangeSex();}
}
diff --git a/1.6/Source/Genes/Gender/Genes/Gene_MaleOnly.cs b/1.6/Source/Genes/Gender/Genes/Gene_MaleOnly.cs
index b25bfa1..ca405e4 100644
--- a/1.6/Source/Genes/Gender/Genes/Gene_MaleOnly.cs
+++ b/1.6/Source/Genes/Gender/Genes/Gene_MaleOnly.cs
@@ -15,8 +15,11 @@ namespace RJW_Genes
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostMake();
- AdjustPawnToMale();
- GenderUtility.RemoveSexChangeThoughtsIfTooYoung(this.pawn);
+ if (this.Active)
+ {
+ AdjustPawnToMale();
+ GenderUtility.RemoveSexChangeThoughtsIfTooYoung(this.pawn);
+ }
}
private void AdjustPawnToMale()
diff --git a/1.6/Source/Genes/Genitalia/Gene_GenitaliaType.cs b/1.6/Source/Genes/Genitalia/Gene_GenitaliaType.cs
index b33a210..41b85be 100644
--- a/1.6/Source/Genes/Genitalia/Gene_GenitaliaType.cs
+++ b/1.6/Source/Genes/Genitalia/Gene_GenitaliaType.cs
@@ -13,6 +13,7 @@ namespace RJW_Genes
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
Apply();
}
diff --git a/1.6/Source/Genes/GenitaliaSize/Gene_GenitaliaResizingGene.cs b/1.6/Source/Genes/GenitaliaSize/Gene_GenitaliaResizingGene.cs
index fd1a5f1..fd9a2f2 100644
--- a/1.6/Source/Genes/GenitaliaSize/Gene_GenitaliaResizingGene.cs
+++ b/1.6/Source/Genes/GenitaliaSize/Gene_GenitaliaResizingGene.cs
@@ -32,17 +32,18 @@ namespace RJW_Genes
public override void PostMake()
{
base.PostMake();
- if (pawn.ageTracker.AgeBiologicalYears >= RJW_Genes_Settings.rjw_genes_resizing_age)
- {
- Resize();
- ResizingWasApplied = true;
- }
+ //if (pawn.ageTracker.AgeBiologicalYears >= RJW_Genes_Settings.rjw_genes_resizing_age)
+ //{
+ // Resize();
+ // ResizingWasApplied = true;
+ //}
}
public override void PostAdd()
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
if (pawn.ageTracker.AgeBiologicalYears >= RJW_Genes_Settings.rjw_genes_resizing_age)
{
Resize();
diff --git a/1.6/Source/Genes/GenitaliaSize/Genes/Gene_EvergrowingGenitalia.cs b/1.6/Source/Genes/GenitaliaSize/Genes/Gene_EvergrowingGenitalia.cs
index 4a00846..c80ecb5 100644
--- a/1.6/Source/Genes/GenitaliaSize/Genes/Gene_EvergrowingGenitalia.cs
+++ b/1.6/Source/Genes/GenitaliaSize/Genes/Gene_EvergrowingGenitalia.cs
@@ -46,8 +46,13 @@ namespace RJW_Genes
}
// Increase Fluid
- if (CompHediff != null)
+ // Increase Fluid, if it's already above 10x don't increase to avoid crash issues.
+ if (CompHediff != null && (CompHediff.partFluidMultiplier < 100))
+ {
CompHediff.partFluidMultiplier *= 1.05f;
+ if (CompHediff.partFluidMultiplier > 100)
+ CompHediff.partFluidMultiplier = 100;
+ }
}
}
diff --git a/1.6/Source/Genes/Patches/PatchLitteredBirth.cs b/1.6/Source/Genes/Patches/PatchLitteredBirth.cs
index 90c4f12..3a938d5 100644
--- a/1.6/Source/Genes/Patches/PatchLitteredBirth.cs
+++ b/1.6/Source/Genes/Patches/PatchLitteredBirth.cs
@@ -38,7 +38,6 @@ namespace RJW_Genes
ModLog.Message("Pawn: " + __instance.pawn.NameShortColored + " (" + __instance.pawn.ThingID + ")");
ModLog.Message("birthCount: " + laborStateMap.TryGetValue(__instance.pawn.ThingID).birthCount);
}
-
return;
}
@@ -46,7 +45,7 @@ namespace RJW_Genes
if (laborStateIsNull && hasLitteredBirthsGene)
{
ModLog.Message("Found littered births gene");
- int litteredBirthsTotalRoll = Rand.RangeInclusive(2, 4);
+ int litteredBirthsTotalRoll = Rand.RangeInclusive(1, 3);
laborStateMap.SetOrAdd(__instance.pawn.ThingID, new LaborState(__instance.pawn, litteredBirthsTotalRoll));
return;
}
@@ -119,7 +118,7 @@ namespace RJW_Genes
return;
}
- if (currentLaborState.birthTotal == currentLaborState.birthCount)
+ if (currentLaborState.birthTotal <= currentLaborState.birthCount)
{
laborStateMap.Remove(__instance.pawn.ThingID);
if (__instance.pawn.health.hediffSet.HasHediff(HediffDef.Named("Bioscaffold")))
diff --git a/1.6/Source/Genes/Patches/Patch_sexualize_pawn.cs b/1.6/Source/Genes/Patches/Patch_sexualize_pawn.cs
index 4e5ea56..ccc4adb 100644
--- a/1.6/Source/Genes/Patches/Patch_sexualize_pawn.cs
+++ b/1.6/Source/Genes/Patches/Patch_sexualize_pawn.cs
@@ -6,8 +6,11 @@ using System.Threading.Tasks;
using rjw;
using Verse;
+
+
namespace RJW_Genes
{
+ [Obsolete]
internal static class Patch_sexualize_pawn
{
///
diff --git a/1.6/Source/Genes/RJW_Gene.cs b/1.6/Source/Genes/RJW_Gene.cs
index b97dbd7..a036554 100644
--- a/1.6/Source/Genes/RJW_Gene.cs
+++ b/1.6/Source/Genes/RJW_Gene.cs
@@ -19,12 +19,7 @@ namespace RJW_Genes
public override void PostAdd()
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
- if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
- {
- Sexualizer.sexualize_pawn(pawn);
- }
base.PostAdd();
-
}
@@ -37,5 +32,8 @@ namespace RJW_Genes
public virtual void Notify_OnPawnGeneration()
{
}
+
+
+ public virtual void Notify_OnPawnSexualization() { }
}
}
diff --git a/1.6/Source/Genes/Special/Patches/Patch_HormonalSaliva.cs b/1.6/Source/Genes/Special/Patches/Patch_HormonalSaliva.cs
index 48a035f..2d806da 100644
--- a/1.6/Source/Genes/Special/Patches/Patch_HormonalSaliva.cs
+++ b/1.6/Source/Genes/Special/Patches/Patch_HormonalSaliva.cs
@@ -59,9 +59,13 @@ namespace RJW_Genes
}
CompHediff.UpdateSeverity();
- // Increase Fluid
- if (CompHediff != null)
+ // Increase Fluid, if it's already above 10x don't increase to avoid crash issues.
+ if (CompHediff != null && (CompHediff.partFluidMultiplier < 100))
+ {
CompHediff.partFluidMultiplier *= cum_multiplier;
+ if (CompHediff.partFluidMultiplier > 100)
+ CompHediff.partFluidMultiplier = 100;
+ }
}
}
diff --git a/1.6/Source/HarmonyInit.cs b/1.6/Source/HarmonyInit.cs
index 7f0a376..0ba3837 100644
--- a/1.6/Source/HarmonyInit.cs
+++ b/1.6/Source/HarmonyInit.cs
@@ -48,10 +48,12 @@ namespace RJW_Genes
//harmony.Patch(AccessTools.Method(typeof(Quirk), nameof(Quirk.CountSatisfiedQuirks)),
//postfix: new HarmonyMethod(typeof(QuirkPatcher), nameof(QuirkPatcher.CountSatisfiedPostfix)));
-
+
//RJW.Sexualizer.sexualize_pawn
harmony.Patch(AccessTools.Method(typeof(Sexualizer), nameof(Sexualizer.sexualize_pawn)),
- prefix: new HarmonyMethod(typeof(Patch_sexualize_pawn), nameof(Patch_sexualize_pawn.PreFix)));
+ //prefix: new HarmonyMethod(typeof(Patch_sexualize_pawn), nameof(Patch_sexualize_pawn.PreFix))); //Old Method that ran Sexualize early.
+ postfix: new HarmonyMethod(typeof(Patch_RJWSexualizer), nameof(Patch_RJWSexualizer.ApplyGenesPostfix)));
+
//Patch for Elastic Gene support with Eltoro's Streching mod.
diff --git a/1.6/Source/Properties/AssemblyInfo.cs b/1.6/Source/Properties/AssemblyInfo.cs
index 5dbde35..9381075 100644
--- a/1.6/Source/Properties/AssemblyInfo.cs
+++ b/1.6/Source/Properties/AssemblyInfo.cs
@@ -32,4 +32,4 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("2.6.2")]
+[assembly: AssemblyVersion("2.7.0")]
diff --git a/1.6/Source/Rjw-Genes.csproj b/1.6/Source/Rjw-Genes.csproj
index 6d77471..2404ae3 100644
--- a/1.6/Source/Rjw-Genes.csproj
+++ b/1.6/Source/Rjw-Genes.csproj
@@ -22,6 +22,16 @@
4
false
+
+ ..\Assemblies\
+ true
+ AnyCPU
+ 9
+ prompt
+ portable
+ true
+ TRACE;DEBUG
+
@@ -31,6 +41,7 @@
+
@@ -41,6 +52,7 @@
+
diff --git a/About/About.xml b/About/About.xml
index 41240b4..c6f0f05 100644
--- a/About/About.xml
+++ b/About/About.xml
@@ -1,27 +1,64 @@
RJW Genes
- Vegapnk - 1.6 Rewrite by Telanda
+
+ Vegapnk
+ 1.6 Rewrite by Telanda
+
Vegapnk.rjw.genes
- 2.6.2
+ 2.7.0
1.4
1.5
1.6
-
-Adds Genes for RJW Content.
+ Adds Genes for RJW Content.
Adds:
- Genes for Genitalia Types and Sizes
- Fertilin, a resource similiar to Hemogen, and accompanying sex-vampires
- Mechanics for Breeding and being Breed by Animals and Insects
-- Inherit genes from bestiality or produce VGE-Hybrids
- Male / Female Only, MPreg, Genderfluid Pawns
- Orgasmic Mytosis, Orgasmic Supercharging, Age-Transfer on Sex, Pheromones
- Cum-Amount changes, Cumflation Immunity
- Horny Pheromones, Animal Mating Call
- Genetic Diseases that Spread on Intercourse
-- Patches for some popular Xenotypes from the Workshop
- Sexual Taming of Animals
+
+Patches for the following Xenotype Mods
+- Alpha Genes
+- Biotech Expansion - Mammalia
+- Biotech Expansion - Mythic
+- Biotech Nyaron
+- Big and Small Heaven and Hell
+- Big and Small More Xenotypes
+- Big and Small - Races
+- Big and Small - Slimes
+- Big and Small - Lamias and other Snake-People
+- Big and Small - Vampires and the Undead
+- Big and Small - Yokai
+- Erin's Auronya
+- Erin's Shisune
+- Kijin Race 3.0
+- NaraiXenotype
+- Obsidia Expansion - Arachnas Xenotype
+- Papou Xenotype: Emotional Birds (Continued)
+- Rimsenal Xenotype Pack - Askbarn
+- Roo's Faun Xenotype
+- Roo's Minotaur Xenotype
+- Roo's Satyr Xenotype
+- Vanilla Races Expanded - Android
+- Vanilla Races Expanded - Archon
+- Vanilla Races Expanded - Fungoid
+- Vanilla Races Expanded - Genie
+- Vanilla Races Expanded - Highmate
+- Vanilla Races Expanded - Lycanthrope
+- Vanilla Races Expanded - Pigskin
+- Vanilla Races Expanded - Phytokin
+- Vanilla Races Expanded - Sanguophage
+- Vanilla Races Expanded - Saurid
+- [LTS]Xenotech
+
+For Feedback or Support please see the Rimjob World Discord!
+https://discord.gg/UWZ3WfVWeK
https://github.com/vegapnk/RJW-Genes
@@ -40,27 +77,51 @@ Adds:
steam://url/CommunityFilePage/2009463077
https://github.com/pardeike/HarmonyRimWorld/releases/latest
-
- Ludeon.RimWorld
- Ludeon.RimWorld.Royalty
- Ludeon.RimWorld.Ideology
- Ludeon.RimWorld.Biotech
- rim.job.world
+ ASMR.RJW.RaceSupport
+ biotexpans.insect
+ biotexpans.mammalia
+ biotexpans.mythic
brrainz.harmony
+ CaptoLamia.NyaronBioTechHAR
+ erin.auronyabiotech
+ erin.shisune
+ Ludeon.RimWorld.Biotech
+ Ludeon.RimWorld.Ideology
+ Ludeon.RimWorld.Royalty
+ Ludeon.RimWorld
+ lyzz.naraixenotype
+ obsidiaexpansion.xenos.arachnas
OskarPotocki.VanillaFactionsExpanded.Core
- sarg.alphaanimals
- Sl4vP0weR.DominantGene
+ oskarpotocki.vfe.empire
+ redmattis.bsslimes
+ redmattis.heaven
+ redmattis.lamiasandothersnakes
+ redmattis.undead
+ redmattis.yokai
+ rim.job.world
+ rimsenal.askbarn
rjw.sexperience.cumgenes
+ sarg.alphaanimals
+ sarg.alphagenes
+ Sl4vP0weR.DominantGene
+ ssulunge.kijinrace3
+ tug.minotaur
+ tug.satyr
+ v.rooboid.faun
+ VanillaExpanded.VGeneticsE
+ vanillaracesexpanded.android
+ vanillaracesexpanded.archon
+ vanillaracesexpanded.fungoid
+ vanillaracesexpanded.genie
+ vanillaracesexpanded.highmate
+ vanillaracesexpanded.lycanthrope
+ vanillaracesexpanded.phytokin
+ vanillaracesexpanded.sanguophage
+ vanillaracesexpanded.saurid
vegapnk.cumpilation
+ zal.papou
diff --git a/About/Manifest.xml b/About/Manifest.xml
index 0cd2bf9..f10acfc 100644
--- a/About/Manifest.xml
+++ b/About/Manifest.xml
@@ -1,7 +1,7 @@
RJW-Genes
- 2.6.2
+ 2.7.0
RimJobWorld
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e044bfc..671b325 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,51 @@
-#INPROG
+# 2.7.0 (23-07-2026)
+(Commit by @Telanda-DDS)
+
+### Fixes.
+- Rewrite of how Genital Genes handle non-Sexualised pawns, should address most 'extra genitals' bugs.
+- Gender Fluid no longer allows sex changes while a pawn is pregnant.
+- Updated Big & Small - Lamia Patches to account for changes in Def Capitalisation.
+- Hormonal Saliva & Evergrowth now have a caps on fluid production, pawns should no longer grow so productive their cumshots crash the game.
+
+
+### Xenotypes.
+I've done a Check over the included xenotype patches, A few Xenotypes that hadn't been updated to 1.6 have been removed, and minor fixes Applied to other races. The current Supported Xenotype list is as following.
+- Alpha Genes
+- Biotech Expansion - Mammalia
+- Biotech Expansion - Mythic
+- Biotech Nyaron
+- Big and Small Heaven and Hell
+- Big and Small More Xenotypes
+- Big and Small - Races
+- Big and Small - Slimes
+- Big and Small - Lamias and other Snake-People
+- Big and Small - Vampires and the Undead
+- Big and Small - Yokai
+- Erin's Auronya
+- Erin's Shisune
+- Kijin Race 3.0
+- NaraiXenotype
+- Obsidia Expansion - Arachnas Xenotype
+- Papou Xenotype: Emotional Birds (Continued)
+- Rimsenal Xenotype Pack - Askbarn
+- Roo's Faun Xenotype
+- Roo's Minotaur Xenotype
+- Roo's Satyr Xenotype
+- Vanilla Races Expanded - Android
+- Vanilla Races Expanded - Archon
+- Vanilla Races Expanded - Fungoid
+- Vanilla Races Expanded - Genie
+- Vanilla Races Expanded - Highmate
+- Vanilla Races Expanded - Lycanthrope
+- Vanilla Races Expanded - Pigskin
+- Vanilla Races Expanded - Phytokin
+- Vanilla Races Expanded - Sanguophage
+- Vanilla Races Expanded - Saurid
+- \[LTS\]Xenotech
+
+### Known Issues.
+- Fertile Anus gene is Unreliable, and does not work with Biotech Pregnancies Enabled in RJW. (Waiting for large Upstream patch to RJW Core to be accepted.)
+
# 2.6.2 (15-02-2026)
(Commit by @Telanda-DDS)