diff --git a/Common/Assemblies/Rjw-Genes.dll b/Common/Assemblies/Rjw-Genes.dll
index b1fd66c..db2c867 100644
Binary files a/Common/Assemblies/Rjw-Genes.dll and b/Common/Assemblies/Rjw-Genes.dll differ
diff --git a/Common/Defs/Genes/GeneDefs_Breeding.xml b/Common/Defs/GeneDefs_Breeding.xml
similarity index 99%
rename from Common/Defs/Genes/GeneDefs_Breeding.xml
rename to Common/Defs/GeneDefs_Breeding.xml
index 14b1be7..9e9a4a2 100644
--- a/Common/Defs/Genes/GeneDefs_Breeding.xml
+++ b/Common/Defs/GeneDefs_Breeding.xml
@@ -19,7 +19,7 @@
52rjw_genes_breeding
-
+
rjw_genes_insectbreeder
@@ -28,5 +28,5 @@
53rjw_genes_breeding
-
+
\ No newline at end of file
diff --git a/Common/Defs/Genes/GeneCategories.xml b/Common/Defs/Genes/GeneCategories.xml
index 10aa8e9..a5e53c1 100644
--- a/Common/Defs/Genes/GeneCategories.xml
+++ b/Common/Defs/Genes/GeneCategories.xml
@@ -24,10 +24,4 @@
15
-
- rjw_genes_cum
-
- 14
-
-
\ No newline at end of file
diff --git a/Common/Defs/Genes/GeneDefs_Cum.xml b/Common/Defs/Genes/GeneDefs_Cum.xml
deleted file mode 100644
index 0100d33..0000000
--- a/Common/Defs/Genes/GeneDefs_Cum.xml
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-
- rjw_genes_cum
-
-
CumAmount
-
-
-
-
-
- rjw_genes_no_cum
-
- Males of these species have no fluid.
- Genes/Icons/Placeholder
- RJW_Genes.Gene_NoCum
- 533
- 0
- 1
-
-
-
- rjw_genes_much_cum
-
- Males of this species produce a lot of fluid.
- Genes/Icons/Placeholder
- RJW_Genes.Gene_MuchCum
- 534
- 1
- -1
-
-
-
- rjw_genes_very_much_cum
-
- Males of this species produce a whole lot of fluid. They are like fountains basically.
- Genes/Icons/Placeholder
- RJW_Genes.Gene_VeryMuchCum
- 535
- 1
- -2
-
-
-
- rjw_genes_likes_cumflation
-
- rjw_genes_cum
- This Xenotype loves being cumflated.
- Genes/Icons/Placeholder
- 536
-
-
- LikesCumflation
-
-
-
-
NotCumflatable
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Common/Defs/Genes/GeneDefs_Reproduction.xml b/Common/Defs/Genes/GeneDefs_Reproduction.xml
deleted file mode 100644
index ad27692..0000000
--- a/Common/Defs/Genes/GeneDefs_Reproduction.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
- rjw_genes_hypersexual
-
- Reproduction
- Xenotypes with this Gene are Hypersexual (Nymphs).
- Genes/Icons/Placeholder
- 1
-
-
- Nymphomaniac
-
-
-
-
-
\ No newline at end of file
diff --git a/Source/GeneDefOf.cs b/Source/GeneDefOf.cs
index 2c0b42e..e9a7362 100644
--- a/Source/GeneDefOf.cs
+++ b/Source/GeneDefOf.cs
@@ -6,61 +6,51 @@ namespace RJW_Genes
[DefOf]
public static class GeneDefOf
{
- public static readonly GeneCategoryDef rjw_genes_genitalia;
- public static readonly GeneCategoryDef rjw_genes_gender;
+ [MayRequireBiotech] public static readonly GeneCategoryDef rjw_genes_genitalia;
+ [MayRequireBiotech] public static readonly GeneCategoryDef rjw_genes_gender;
// Base Genitalia Types
- public static readonly GeneDef rjw_genes_human_genitalia;
- public static readonly GeneDef rjw_genes_equine_genitalia;
- public static readonly GeneDef rjw_genes_demonic_genitalia;
- public static readonly GeneDef rjw_genes_dragon_genitalia;
- public static readonly GeneDef rjw_genes_slime_genitalia;
- public static readonly GeneDef rjw_genes_ovipositor_genitalia;
- public static readonly GeneDef rjw_genes_feline_genitalia;
- public static readonly GeneDef rjw_genes_canine_genitalia;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_human_genitalia;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_equine_genitalia;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_demonic_genitalia;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_dragon_genitalia;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_slime_genitalia;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_ovipositor_genitalia;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_feline_genitalia;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_canine_genitalia;
// Extra Genitalia
- public static readonly GeneDef rjw_genes_extra_penis;
- public static readonly GeneDef rjw_genes_no_penis;
- public static readonly GeneDef rjw_genes_extra_vagina;
- public static readonly GeneDef rjw_genes_no_vagina;
- public static readonly GeneDef rjw_genes_extra_breasts;
- public static readonly GeneDef rjw_genes_no_breasts;
- public static readonly GeneDef rjw_genes_extra_anus;
- public static readonly GeneDef rjw_genes_no_anus;
- public static readonly GeneDef rjw_genes_futa;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_extra_penis;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_no_penis;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_extra_vagina;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_no_vagina;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_extra_breasts;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_no_breasts;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_extra_anus;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_no_anus;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_futa;
// Genitalia Sizes
- public static readonly GeneDef rjw_genes_big_male_genitalia;
- public static readonly GeneDef rjw_genes_normal_male_genitalia;
- public static readonly GeneDef rjw_genes_small_male_genitalia;
- public static readonly GeneDef rjw_genes_loose_female_genitalia;
- public static readonly GeneDef rjw_genes_normal_female_genitalia;
- public static readonly GeneDef rjw_genes_tight_female_genitalia;
- public static readonly GeneDef rjw_genes_big_breasts;
- public static readonly GeneDef rjw_genes_normal_breasts;
- public static readonly GeneDef rjw_genes_small_breasts;
- public static readonly GeneDef rjw_genes_loose_anus;
- public static readonly GeneDef rjw_genes_normal_anus;
- public static readonly GeneDef rjw_genes_tight_anus;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_big_male_genitalia;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_normal_male_genitalia;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_small_male_genitalia;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_loose_female_genitalia;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_normal_female_genitalia;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_tight_female_genitalia;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_big_breasts;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_normal_breasts;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_small_breasts;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_loose_anus;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_normal_anus;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_tight_anus;
// Gender
- public static readonly GeneDef rjw_genes_female_only;
- public static readonly GeneDef rjw_genes_male_only;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_female_only;
+ [MayRequireBiotech] public static readonly GeneDef rjw_genes_male_only;
// Breeding
public static readonly GeneDef rjw_genes_mechbreeder;
public static readonly GeneDef rjw_genes_insectincubator;
public static readonly GeneDef rjw_genes_insectbreeder;
-
- //Cum
- public static readonly GeneDef rjw_genes_no_cum;
- public static readonly GeneDef rjw_genes_much_cum;
- public static readonly GeneDef rjw_genes_very_much_cum;
- [MayRequire("LustLicentia.RJWLabs")] public static readonly GeneDef rjw_genes_likes_cumflation;
- //[MayRequire("LustLicentia.RJWLabs")] public static readonly GeneDef rjw_genes_cumflation_immunity; //Does currently not work like this
-
- //Reproduction
- public static readonly GeneDef rjw_genes_hypersexual;
}
}
diff --git a/Source/Genes/Breeding/Gene_MechBreeder.cs b/Source/Genes/Breeding/Gene_MechBreeder.cs
index 1ceaf67..a0a8855 100644
--- a/Source/Genes/Breeding/Gene_MechBreeder.cs
+++ b/Source/Genes/Breeding/Gene_MechBreeder.cs
@@ -2,7 +2,7 @@
namespace Genes.Breeding
{
- public class Gene_MechBreeder : Gene
+ internal class Gene_MechBreeder : Gene
{
// This one does not do anything, the patch is some where else checking for the pawn to have this Gene!
}
diff --git a/Source/Genes/Breeding/PatchPawnExtensions.cs b/Source/Genes/Breeding/PatchPawnExtensions.cs
index f3df7a8..2c36716 100644
--- a/Source/Genes/Breeding/PatchPawnExtensions.cs
+++ b/Source/Genes/Breeding/PatchPawnExtensions.cs
@@ -6,8 +6,6 @@ namespace RJW_Genes
{
///
/// Kindly provided by 'shabalox' https://github.com/Shabalox/RJW_Genes_Addons/
- ///
- /// Note on the logic: the result mentioned below is changing the result of fertilization (true or false) to true if the pawn has the insect-breeder gene.
///
[HarmonyPatch(typeof(PawnExtensions), "RaceImplantEggs")]
public static class PatchPawnExtensions
diff --git a/Source/Genes/Cum/CumUtility.cs b/Source/Genes/Cum/CumUtility.cs
deleted file mode 100644
index ea049cc..0000000
--- a/Source/Genes/Cum/CumUtility.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-using Verse;
-using rjw;
-
-namespace RJW_Genes
-{
- public class CumUtility
- {
-
- public static void MultiplyFluidAmountBy(Pawn pawn, float multiplier)
- {
- var partBPR = Genital_Helper.get_genitalsBPR(pawn);
- var parts = Genital_Helper.get_PartsHediffList(pawn, partBPR);
-
- if (!parts.NullOrEmpty())
- {
- CompHediffBodyPart CompHediff;
-
- foreach (Hediff part in parts)
- {
- if (GenitaliaChanger.IsArtificial(part))
- continue;
-
- if (rjw.Genital_Helper.is_penis(part))
- {
- CompHediff = part.TryGetComp();
- if (CompHediff != null)
- {
- CompHediff.FluidAmmount *= multiplier;
- }
- }
- }
-
- }
-
- }
- }
-}
diff --git a/Source/Genes/Cum/Gene_MuchCum.cs b/Source/Genes/Cum/Gene_MuchCum.cs
deleted file mode 100644
index e88ac3f..0000000
--- a/Source/Genes/Cum/Gene_MuchCum.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-namespace RJW_Genes
-{
- public class Gene_MuchCum : RJW_Gene
- {
- bool has_been_fired = false;
-
- float multiplier_much_cum = 3f;
-
- public override void PostMake()
- {
- base.PostMake();
-
- CumUtility.MultiplyFluidAmountBy(pawn, multiplier_much_cum);
- has_been_fired = true;
- }
-
- public override void PostAdd()
- {
- base.PostAdd();
- if (!has_been_fired) {
- CumUtility.MultiplyFluidAmountBy(pawn, multiplier_much_cum);
- has_been_fired = true;
- }
- }
-
-
- public override void PostRemove()
- {
- base.PostAdd();
-
- if (has_been_fired)
- {
- CumUtility.MultiplyFluidAmountBy(pawn, 1/multiplier_much_cum);
- has_been_fired = false;
- }
- }
-
- }
-}
diff --git a/Source/Genes/Cum/Gene_NoCum.cs b/Source/Genes/Cum/Gene_NoCum.cs
deleted file mode 100644
index 0c3e888..0000000
--- a/Source/Genes/Cum/Gene_NoCum.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-namespace RJW_Genes
-{
- public class Gene_NoCum : RJW_Gene
- {
- bool has_been_fired = false;
-
-
- public override void PostMake()
- {
- base.PostMake();
-
- CumUtility.MultiplyFluidAmountBy(pawn, 0f);
- has_been_fired = true;
- }
-
- public override void PostAdd()
- {
- base.PostAdd();
- if (!has_been_fired) {
- CumUtility.MultiplyFluidAmountBy(pawn, 0f);
- has_been_fired = true;
- }
- }
-
-
- public override void PostRemove()
- {
- // Cum Removal does not do at the moment :/ I would need to safe the old cum amount but I don't want to at the moment
- base.PostAdd();
-
- }
-
- }
-}
diff --git a/Source/Genes/Cum/Gene_VeryMuchCum.cs b/Source/Genes/Cum/Gene_VeryMuchCum.cs
deleted file mode 100644
index 21faecc..0000000
--- a/Source/Genes/Cum/Gene_VeryMuchCum.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-namespace RJW_Genes
-{
- public class Gene_VeryMuchCum : RJW_Gene
- {
- bool has_been_fired = false;
-
- float multiplier_much_cum = 10f;
-
- public override void PostMake()
- {
- base.PostMake();
-
- CumUtility.MultiplyFluidAmountBy(pawn, multiplier_much_cum);
- has_been_fired = true;
- }
-
- public override void PostAdd()
- {
- base.PostAdd();
- if (!has_been_fired) {
- CumUtility.MultiplyFluidAmountBy(pawn, multiplier_much_cum);
- has_been_fired = true;
- }
- }
-
-
- public override void PostRemove()
- {
- base.PostAdd();
-
- if (has_been_fired)
- {
- CumUtility.MultiplyFluidAmountBy(pawn, 1/multiplier_much_cum);
- has_been_fired = false;
- }
- }
-
- }
-}
diff --git a/Source/Genes/Genitalia/Gene_CanineGenitalia.cs b/Source/Genes/Genitalia/Gene_CanineGenitalia.cs
index 01f0015..0f31a11 100644
--- a/Source/Genes/Genitalia/Gene_CanineGenitalia.cs
+++ b/Source/Genes/Genitalia/Gene_CanineGenitalia.cs
@@ -14,7 +14,7 @@ namespace RJW_Genes
public override void PostAdd()
{
- base.PostAdd();
+ base.PostMake();
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper.canine_penis, Genital_Helper.canine_vagina, Genital_Helper.generic_anus);
}
}
diff --git a/Source/Genes/Genitalia/Gene_DemonicGenitalia.cs b/Source/Genes/Genitalia/Gene_DemonicGenitalia.cs
index cc0cc29..e4c5805 100644
--- a/Source/Genes/Genitalia/Gene_DemonicGenitalia.cs
+++ b/Source/Genes/Genitalia/Gene_DemonicGenitalia.cs
@@ -15,7 +15,7 @@ namespace RJW_Genes
public override void PostAdd()
{
- base.PostAdd();
+ base.PostMake();
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper.demon_penis, Genital_Helper.demon_vagina, Genital_Helper.demon_anus);
}
}
diff --git a/Source/Genes/Genitalia/Gene_DragonGenitalia.cs b/Source/Genes/Genitalia/Gene_DragonGenitalia.cs
index 34d24f6..abd930d 100644
--- a/Source/Genes/Genitalia/Gene_DragonGenitalia.cs
+++ b/Source/Genes/Genitalia/Gene_DragonGenitalia.cs
@@ -14,7 +14,7 @@ namespace RJW_Genes
public override void PostAdd()
{
- base.PostAdd();
+ base.PostMake();
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper.dragon_penis, Genital_Helper.dragon_vagina, Genital_Helper.generic_anus);
}
}
diff --git a/Source/Genes/Genitalia/Gene_EquineGenitalia.cs b/Source/Genes/Genitalia/Gene_EquineGenitalia.cs
index 74b8b2f..4ec956b 100644
--- a/Source/Genes/Genitalia/Gene_EquineGenitalia.cs
+++ b/Source/Genes/Genitalia/Gene_EquineGenitalia.cs
@@ -14,7 +14,7 @@ namespace RJW_Genes
public override void PostAdd()
{
- base.PostAdd();
+ base.PostMake();
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper.equine_penis, Genital_Helper.equine_vagina, Genital_Helper.generic_anus);
}
}
diff --git a/Source/Genes/Genitalia/Gene_FelineGenitalia.cs b/Source/Genes/Genitalia/Gene_FelineGenitalia.cs
index 2fe4882..6c1b987 100644
--- a/Source/Genes/Genitalia/Gene_FelineGenitalia.cs
+++ b/Source/Genes/Genitalia/Gene_FelineGenitalia.cs
@@ -14,7 +14,7 @@ namespace RJW_Genes
public override void PostAdd()
{
- base.PostAdd();
+ base.PostMake();
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper.feline_penis, Genital_Helper.feline_vagina, Genital_Helper.generic_anus);
}
}
diff --git a/Source/Genes/Genitalia/Gene_OvipositorGenitalia.cs b/Source/Genes/Genitalia/Gene_OvipositorGenitalia.cs
index b7a1141..2e91c2c 100644
--- a/Source/Genes/Genitalia/Gene_OvipositorGenitalia.cs
+++ b/Source/Genes/Genitalia/Gene_OvipositorGenitalia.cs
@@ -14,7 +14,7 @@ namespace RJW_Genes
public override void PostAdd()
{
- base.PostAdd();
+ base.PostMake();
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper.ovipositorM, Genital_Helper.ovipositorF, Genital_Helper.insect_anus);
}
}
diff --git a/Source/Genes/Genitalia/Gene_SlimeGenitalia.cs b/Source/Genes/Genitalia/Gene_SlimeGenitalia.cs
index 5671f1f..efbdfcb 100644
--- a/Source/Genes/Genitalia/Gene_SlimeGenitalia.cs
+++ b/Source/Genes/Genitalia/Gene_SlimeGenitalia.cs
@@ -14,7 +14,7 @@ namespace RJW_Genes
public override void PostAdd()
{
- base.PostAdd();
+ base.PostMake();
GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper.slime_penis, Genital_Helper.slime_vagina, Genital_Helper.slime_anus);
}
}
diff --git a/Source/Rjw-Genes.csproj b/Source/Rjw-Genes.csproj
index befe2c2..708cdb8 100644
--- a/Source/Rjw-Genes.csproj
+++ b/Source/Rjw-Genes.csproj
@@ -56,10 +56,6 @@
-
-
-
-
diff --git a/TODOS.md b/TODOS.md
index 73715a9..afd4c19 100644
--- a/TODOS.md
+++ b/TODOS.md
@@ -8,6 +8,15 @@ So any help is very appreciated, even if it is just pointing me to existing simi
**Sanguophage like Cumwhores** adding Hemogen and refilling it by getting semen.
Showstopper here is the amount of code required, and that I need to understand a bit better of harmony to run the AfterSexUtility and modulate SexChances.
+**MechBreeder** hetch mechanoids without harm.
+Showstopper: The damage to the pawn is hardcoded in MechBirth, so I might want to do a Deathstasis like Hediff after
+
+**InsectBreeder** pawn fertilizes the insect eggs in his partner
+
+**InsectIncubator** increase amount of eggs that fit inside pawn.
+Issue is that the MaxEggSize and Eggsize have hardcoded criteria, mostly around pawn size.
+This might need a small change in RJW base code to split the function up with parameters (e.g. MaxEggSize)
+
**Traits** such as Hypersexual and LikesCumflation, Sexuality Genes?
**Modulation of FluidAmount** for Cocks and Tiddies