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 @@ 52 rjw_genes_breeding - + rjw_genes_insectbreeder @@ -28,5 +28,5 @@ 53 rjw_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