From bccd258d13b7090b0840cd8a78b1184f0c20d92b Mon Sep 17 00:00:00 2001 From: Vegapnk Date: Wed, 3 Jul 2024 10:14:05 +0200 Subject: [PATCH 1/6] Disease Spread uses settings --- ...AftersexUtility_TransferGeneticDiseases.cs | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/Source/Genes/Diseases/Patches/Patch_AftersexUtility_TransferGeneticDiseases.cs b/Source/Genes/Diseases/Patches/Patch_AftersexUtility_TransferGeneticDiseases.cs index bf6e26c..8ddb6be 100644 --- a/Source/Genes/Diseases/Patches/Patch_AftersexUtility_TransferGeneticDiseases.cs +++ b/Source/Genes/Diseases/Patches/Patch_AftersexUtility_TransferGeneticDiseases.cs @@ -15,6 +15,8 @@ namespace RJW_Genes.Genes.Diseases.Patches public static void Postfix(SexProps props) { + if (!RJW_Genes_Settings.rjw_genes_genetic_disease_spread) return; + if (props == null || props.pawn == null || props.partner == null) return; Pawn pawn = props.pawn; @@ -26,6 +28,9 @@ namespace RJW_Genes.Genes.Diseases.Patches // No Infections on Condom Use if (props.usedCondom) return; + // Exit early if settings require penetrative sex, but this is not penetrative sex + if (!IsPenetrativeSex(props) && RJW_Genes_Settings.rjw_genes_genetic_disease_spread_only_on_penetrative_sex) return; + ModLog.Debug($"Firing Patch_TransferGeneticDiseases for {pawn} and {partner}"); TryTransferGeneticDiseases(pawn, partner, props); TryTransferGeneticDiseases(partner, pawn, props); @@ -47,7 +52,7 @@ namespace RJW_Genes.Genes.Diseases.Patches if ((new Random()).NextDouble() <= LookupDiseaseInfectionChance(disease)) { - infected.genes.AddGene(disease, false); + infected.genes.AddGene(disease, !RJW_Genes_Settings.rjw_genes_genetic_disease_as_endogenes); } } } @@ -67,6 +72,19 @@ namespace RJW_Genes.Genes.Diseases.Patches return new List() { }; } + private static bool IsPenetrativeSex(SexProps props) + { + if (props == null) return false; + + return props.sexType == + xxx.rjwSextype.Vaginal + || props.sexType == xxx.rjwSextype.Anal + || props.sexType == xxx.rjwSextype.Oral + || props.sexType == xxx.rjwSextype.DoublePenetration + || props.sexType == xxx.rjwSextype.Fellatio + || props.sexType == xxx.rjwSextype.Sixtynine; + } + private static bool IsGeneticDiseaseGene(GeneDef geneDef) { return geneDef.geneClass.FullName.Contains("DiseaseGene"); From c90c9e2c0265f5250fcb6ad9ee96ce60f52a49a9 Mon Sep 17 00:00:00 2001 From: Vegapnk Date: Wed, 3 Jul 2024 10:20:57 +0200 Subject: [PATCH 2/6] Removed the DiseaseGene --- Common/Defs/GeneDefs/GeneDefs_Diseases.xml | 8 +------- Source/Genes/Diseases/Genes/DiseaseGene.cs | 14 -------------- ...atch_AftersexUtility_TransferGeneticDiseases.cs | 4 +++- Source/Rjw-Genes.csproj | 2 +- 4 files changed, 5 insertions(+), 23 deletions(-) delete mode 100644 Source/Genes/Diseases/Genes/DiseaseGene.cs diff --git a/Common/Defs/GeneDefs/GeneDefs_Diseases.xml b/Common/Defs/GeneDefs/GeneDefs_Diseases.xml index e4fead1..7b5cbe8 100644 --- a/Common/Defs/GeneDefs/GeneDefs_Diseases.xml +++ b/Common/Defs/GeneDefs/GeneDefs_Diseases.xml @@ -2,12 +2,9 @@ - rjw_genes_diseases rjw_genes_genetic_disease_immunity - 1 - This gene makes the pawn immune against genetic STDs and other genes that imply negative side-effects. 2 @@ -17,15 +14,12 @@ Class="VanillaGenesExpanded.GeneExtension"> Genes/Icons/RJW_Genes_Endogene_Background Genes/Icons/RJW_Genes_Xenogene_Background - + rjw_genes_diseases rjw_genes_minor_vulnerability - - RJW_Genes.DiseaseGene - This gene makes the pawn more vulnerable, and a more attractive target for rape. 2 diff --git a/Source/Genes/Diseases/Genes/DiseaseGene.cs b/Source/Genes/Diseases/Genes/DiseaseGene.cs deleted file mode 100644 index deba64f..0000000 --- a/Source/Genes/Diseases/Genes/DiseaseGene.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Verse; - -namespace RJW_Genes -{ - public class DiseaseGene : Gene - { - - } -} diff --git a/Source/Genes/Diseases/Patches/Patch_AftersexUtility_TransferGeneticDiseases.cs b/Source/Genes/Diseases/Patches/Patch_AftersexUtility_TransferGeneticDiseases.cs index 8ddb6be..d7a2e07 100644 --- a/Source/Genes/Diseases/Patches/Patch_AftersexUtility_TransferGeneticDiseases.cs +++ b/Source/Genes/Diseases/Patches/Patch_AftersexUtility_TransferGeneticDiseases.cs @@ -87,7 +87,9 @@ namespace RJW_Genes.Genes.Diseases.Patches private static bool IsGeneticDiseaseGene(GeneDef geneDef) { - return geneDef.geneClass.FullName.Contains("DiseaseGene"); + if (geneDef == null) return false; + GeneticDiseaseExtension diseaseExt = geneDef.GetModExtension(); + return diseaseExt != null; } private static float LookupDiseaseInfectionChance(GeneDef geneDef) diff --git a/Source/Rjw-Genes.csproj b/Source/Rjw-Genes.csproj index 0abf68c..cf56f5b 100644 --- a/Source/Rjw-Genes.csproj +++ b/Source/Rjw-Genes.csproj @@ -75,7 +75,6 @@ - @@ -241,6 +240,7 @@ + From 38f2470b908c7edc7138a266c9a913d052acffeb Mon Sep 17 00:00:00 2001 From: Vegapnk Date: Wed, 3 Jul 2024 10:54:00 +0200 Subject: [PATCH 3/6] Fleshed out some simple disease genes --- Common/Defs/GeneDefs/GeneDefs_Diseases.xml | 185 +++++++++++++++--- .../Defs/GeneDefs/GeneDefs_Reproduction.xml | 9 +- 2 files changed, 163 insertions(+), 31 deletions(-) diff --git a/Common/Defs/GeneDefs/GeneDefs_Diseases.xml b/Common/Defs/GeneDefs/GeneDefs_Diseases.xml index 7b5cbe8..f26f2c0 100644 --- a/Common/Defs/GeneDefs/GeneDefs_Diseases.xml +++ b/Common/Defs/GeneDefs/GeneDefs_Diseases.xml @@ -1,43 +1,168 @@ - - rjw_genes_diseases - rjw_genes_genetic_disease_immunity - 1 - - This gene makes the pawn immune against genetic STDs and other genes that imply negative side-effects. - 2 - -1 - UI/Icons/ColonistBar/Idle -
  • - Genes/Icons/RJW_Genes_Endogene_Background - Genes/Icons/RJW_Genes_Xenogene_Background -
  • -
    - - - rjw_genes_diseases - rjw_genes_minor_vulnerability - - This gene makes the pawn more vulnerable, and a more attractive target for rape. - 2 - -1 - UI/Icons/ColonistBar/Idle - 3 - + + rjw_genes_diseases + false
  • Genes/Icons/RJW_Genes_Endogene_Background Genes/Icons/RJW_Genes_Xenogene_Background
  • - -
  • - 1.0 + + + + + rjw_genes_diseases + rjw_genes_genetic_disease_immunity + 1 + 0.95 + + This gene makes the pawn immune against genetic STDs and some other genes that + imply negative side-effects. + 1 + -1 + UI/Icons/Rituals/TrialDefend + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background
  • -
    +
    + + + + rjw_genes_minor_vulnerability + + This gene makes the pawn a bit more vulnerable, and a slightly more attractive + target for rape. + 1 + 1 + 0.85 + UI/Icons/ColonistBar/Idle + 5 + + + 0.15 + + + +
  • RJW_Genes_Vulnerability
  • +
    + + +
  • + 0.05 +
  • +
    +
    + + + rjw_genes_major_vulnerability + + This gene makes the pawn more vulnerable, and a more attractive target for + rape. + 2 + 1 + UI/Icons/ColonistBar/Idle + 6 + + +
  • RJW_Genes_Vulnerability
  • +
    + + + 0.3 + + + +
  • + 0.03 +
  • +
    +
    + + + rjw_genes_infectious_hypersexuality + + This gene makes the pawn hypersexual, and has a chance to spread on + intercourse. + Genes/Icons/Hypersexual + 2 + 2 + 7 + +
  • rjw_genes_hypersexuality_trait_giver
  • +
    + + +
  • + Nymphomaniac +
  • +
    + + +
  • + 0.05 +
  • +
    +
    + + + rjw_genes_infectious_bisexuality + + This gene makes the pawn bisexual, and has a chance to spread on intercourse. + UI\Ideoligions\Universal\RoundC + 1 + 0 + 8 + + +
  • rjw_genes_bisexuality_trait_giver
  • +
  • rjw_genes_sexual_orientation
  • +
    + + +
  • + Bisexual +
  • +
    + + +
  • + 0.1 +
  • +
    +
    + + + rjw_genes_infectious_homosexuality + + This gene makes the pawn homosexual, and has a chance to spread on intercourse. + UI\Ideoligions\Universal\RoundC + 1 + 0 + 9 + + +
  • rjw_genes_homosexuality_trait_giver
  • +
  • rjw_genes_sexual_orientation
  • +
    + + +
  • + Gay +
  • +
    + + +
  • + 0.1 +
  • +
    +
    \ No newline at end of file diff --git a/Common/Defs/GeneDefs/GeneDefs_Reproduction.xml b/Common/Defs/GeneDefs/GeneDefs_Reproduction.xml index 8a9d018..7c305d4 100644 --- a/Common/Defs/GeneDefs/GeneDefs_Reproduction.xml +++ b/Common/Defs/GeneDefs/GeneDefs_Reproduction.xml @@ -14,6 +14,10 @@ + +
  • rjw_genes_hypersexuality_trait_giver
  • +
    + false
  • + +
  • rjw_genes_homosexuality_trait_giver
  • rjw_genes_sexual_orientation
  • @@ -138,7 +144,8 @@ -
  • rjw_genes_sexual_orientation
  • +
  • rjw_genes_sexual_orientation
  • +
  • rjw_genes_bisexuality_trait_giver
  • false From b56c0105a69db6da9abaa35b83f849726fb19c4a Mon Sep 17 00:00:00 2001 From: Vegapnk Date: Wed, 3 Jul 2024 11:41:24 +0200 Subject: [PATCH 4/6] Moved the GenderFluid Logic to be more generic --- .../GeneDefs/GeneDefs_SpecifiedGender.xml | 6 +++--- .../Common/Defs/TickBasedChanceExtension.cs | 18 +++++++++++++++++ .../Genes/Gender/Defs/GenderFluidExtension.cs | 20 ------------------- .../Gender/{ => Genes}/Gene_FemaleOnly.cs | 0 .../Gender/{ => Genes}/Gene_GenderFluid.cs | 6 +++--- .../Genes/Gender/{ => Genes}/Gene_MaleOnly.cs | 0 Source/Rjw-Genes.csproj | 9 ++++----- 7 files changed, 28 insertions(+), 31 deletions(-) create mode 100644 Source/Common/Defs/TickBasedChanceExtension.cs delete mode 100644 Source/Genes/Gender/Defs/GenderFluidExtension.cs rename Source/Genes/Gender/{ => Genes}/Gene_FemaleOnly.cs (100%) rename Source/Genes/Gender/{ => Genes}/Gene_GenderFluid.cs (96%) rename Source/Genes/Gender/{ => Genes}/Gene_MaleOnly.cs (100%) diff --git a/Common/Defs/GeneDefs/GeneDefs_SpecifiedGender.xml b/Common/Defs/GeneDefs/GeneDefs_SpecifiedGender.xml index 12ba760..82a302c 100644 --- a/Common/Defs/GeneDefs/GeneDefs_SpecifiedGender.xml +++ b/Common/Defs/GeneDefs/GeneDefs_SpecifiedGender.xml @@ -65,10 +65,10 @@ Genes/Icons/RJW_Genes_Endogene_Background Genes/Icons/RJW_Genes_Xenogene_Background -
  • +
  • - 120000 - 0.25 + 120000 + 0.25
  • diff --git a/Source/Common/Defs/TickBasedChanceExtension.cs b/Source/Common/Defs/TickBasedChanceExtension.cs new file mode 100644 index 0000000..1a8feca --- /dev/null +++ b/Source/Common/Defs/TickBasedChanceExtension.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse; + +namespace RJW_Genes +{ + public class TickBasedChanceExtension : TickIntervalExtension + { + /// + /// Set to 1 for "always", set to 0 for "never". + /// Everything else is a bit statistics, but e.g. when set to .5 the chances grow per day from [50%, 75%, 82.25%, ...] + /// + public float eventChance; + } +} diff --git a/Source/Genes/Gender/Defs/GenderFluidExtension.cs b/Source/Genes/Gender/Defs/GenderFluidExtension.cs deleted file mode 100644 index 332015f..0000000 --- a/Source/Genes/Gender/Defs/GenderFluidExtension.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Verse; - -namespace RJW_Genes -{ - public class GenderFluidExtension : DefModExtension - { - /// - /// Number of ticks until the change can be triggered. - /// Just being "triggered" does not mean changing, see the changeChance below. - /// - public int changeInterval; - - /// - /// How high is the chance to change gender? - /// Set to 1 for "always", set to 0 for "never". - /// Everything else is a bit statistics, but e.g. when set to .5 the chances grow per day from [50%, 75%, 82.25%, ...] - /// - public float changeChance; - } -} \ No newline at end of file diff --git a/Source/Genes/Gender/Gene_FemaleOnly.cs b/Source/Genes/Gender/Genes/Gene_FemaleOnly.cs similarity index 100% rename from Source/Genes/Gender/Gene_FemaleOnly.cs rename to Source/Genes/Gender/Genes/Gene_FemaleOnly.cs diff --git a/Source/Genes/Gender/Gene_GenderFluid.cs b/Source/Genes/Gender/Genes/Gene_GenderFluid.cs similarity index 96% rename from Source/Genes/Gender/Gene_GenderFluid.cs rename to Source/Genes/Gender/Genes/Gene_GenderFluid.cs index bdd5c00..fe75f5d 100644 --- a/Source/Genes/Gender/Gene_GenderFluid.cs +++ b/Source/Genes/Gender/Genes/Gene_GenderFluid.cs @@ -39,9 +39,9 @@ namespace RJW_Genes private bool sexChangeWasBlocked = false; public Gene_GenderFluid() : base() { - GenderFluidExtension genderFluidExt = GeneDefOf.rjw_genes_gender_fluid.GetModExtension(); - change_interval = genderFluidExt?.changeInterval ?? CHANGE_INTERVAL_FALLBACK; - switch_chance = genderFluidExt?.changeChance ?? SWITCH_CHANCE_FALLBACK; + TickBasedChanceExtension tickbasedChanceExt = GeneDefOf.rjw_genes_gender_fluid.GetModExtension(); + change_interval = tickbasedChanceExt?.tickInterval ?? CHANGE_INTERVAL_FALLBACK; + switch_chance = tickbasedChanceExt?.eventChance ?? SWITCH_CHANCE_FALLBACK; } public override void Tick() diff --git a/Source/Genes/Gender/Gene_MaleOnly.cs b/Source/Genes/Gender/Genes/Gene_MaleOnly.cs similarity index 100% rename from Source/Genes/Gender/Gene_MaleOnly.cs rename to Source/Genes/Gender/Genes/Gene_MaleOnly.cs diff --git a/Source/Rjw-Genes.csproj b/Source/Rjw-Genes.csproj index cf56f5b..aa991a2 100644 --- a/Source/Rjw-Genes.csproj +++ b/Source/Rjw-Genes.csproj @@ -58,6 +58,7 @@ + @@ -88,8 +89,7 @@ - - + @@ -109,8 +109,8 @@ - - + + @@ -241,7 +241,6 @@ - From aadf7795c0471e12deaa628cc054755a4bb15781 Mon Sep 17 00:00:00 2001 From: Vegapnk Date: Wed, 3 Jul 2024 12:18:17 +0200 Subject: [PATCH 5/6] Added a simple genetic disease that resets the sex need to 0.1 --- Common/Defs/GeneDefs/GeneDefs_Diseases.xml | 33 +++++++++-- Source/GeneDefOf.cs | 2 + .../Diseases/Genes/Gene_FluctualSexualNeed.cs | 57 +++++++++++++++++++ Source/Rjw-Genes.csproj | 5 +- 4 files changed, 88 insertions(+), 9 deletions(-) create mode 100644 Source/Genes/Diseases/Genes/Gene_FluctualSexualNeed.cs diff --git a/Common/Defs/GeneDefs/GeneDefs_Diseases.xml b/Common/Defs/GeneDefs/GeneDefs_Diseases.xml index f26f2c0..e5c8723 100644 --- a/Common/Defs/GeneDefs/GeneDefs_Diseases.xml +++ b/Common/Defs/GeneDefs/GeneDefs_Diseases.xml @@ -20,7 +20,7 @@ 0.95 This gene makes the pawn immune against genetic STDs and some other genes that - imply negative side-effects. + imply negative side-effects. 1 -1 UI/Icons/Rituals/TrialDefend @@ -38,7 +38,7 @@ rjw_genes_minor_vulnerability This gene makes the pawn a bit more vulnerable, and a slightly more attractive - target for rape. + target for rape. 1 1 0.85 @@ -64,7 +64,7 @@ rjw_genes_major_vulnerability This gene makes the pawn more vulnerable, and a more attractive target for - rape. + rape. 2 1 UI/Icons/ColonistBar/Idle @@ -89,7 +89,7 @@ rjw_genes_infectious_hypersexuality This gene makes the pawn hypersexual, and has a chance to spread on - intercourse. + intercourse. Genes/Icons/Hypersexual 2 2 @@ -114,7 +114,7 @@ rjw_genes_infectious_bisexuality - This gene makes the pawn bisexual, and has a chance to spread on intercourse. + This gene makes the pawn bisexual, and has a chance to spread on intercourse. UI\Ideoligions\Universal\RoundC 1 0 @@ -141,7 +141,7 @@ rjw_genes_infectious_homosexuality - This gene makes the pawn homosexual, and has a chance to spread on intercourse. + This gene makes the pawn homosexual, and has a chance to spread on intercourse. UI\Ideoligions\Universal\RoundC 1 0 @@ -165,4 +165,25 @@ + + rjw_genes_fluctual_sexual_needs + + Carriers of this genetic disease have a chance to suddenly require sex, gaining a bit of energy to find quick relief. + UI/Icons/ColonistBar/Idle + 1 + 2 + 11 + RJW_Genes.Gene_FluctualSexualNeed + +
  • + 0.1 +
  • +
  • + + 30000 + 0.15 +
  • +
    +
    +
    \ No newline at end of file diff --git a/Source/GeneDefOf.cs b/Source/GeneDefOf.cs index af53f67..e4f4aff 100644 --- a/Source/GeneDefOf.cs +++ b/Source/GeneDefOf.cs @@ -124,6 +124,8 @@ namespace RJW_Genes // Diseases public static readonly GeneDef rjw_genes_genetic_disease_immunity; public static readonly GeneDef rjw_genes_minor_vulnerability; + public static readonly GeneDef rjw_genes_major_vulnerability; + public static readonly GeneDef rjw_genes_fluctual_sexual_needs; //Other Defs public static readonly XenotypeDef rjw_genes_succubus; diff --git a/Source/Genes/Diseases/Genes/Gene_FluctualSexualNeed.cs b/Source/Genes/Diseases/Genes/Gene_FluctualSexualNeed.cs new file mode 100644 index 0000000..b25e812 --- /dev/null +++ b/Source/Genes/Diseases/Genes/Gene_FluctualSexualNeed.cs @@ -0,0 +1,57 @@ +using rjw; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse; +using static HarmonyLib.Code; +using static RimWorld.ColonistBar; + +namespace RJW_Genes +{ + public class Gene_FluctualSexualNeed : Gene + { + + int event_interval; + float event_chance; + + const float REST_INCREASE = 0.1f; + const float SET_SEXNEED_TO = 0.1f; + + public Gene_FluctualSexualNeed() : base() + { + TickBasedChanceExtension tickbasedChanceExt = GeneDefOf.rjw_genes_fluctual_sexual_needs.GetModExtension(); + event_interval = tickbasedChanceExt?.tickInterval ?? 30000; // 30K = 1/2 day + event_chance = tickbasedChanceExt?.eventChance ?? 0.1f; + } + + + public override void Tick() + { + base.Tick(); + + if (pawn.IsHashIntervalTick(event_interval) && (new Random()).NextDouble() < event_chance) + { + ModLog.Debug($"Firing Gene_FluctualSexualNeed for {pawn}"); + ApplyFluctualSexNeedEffect(pawn); + } + } + + public static void ApplyFluctualSexNeedEffect(Pawn pawn) + { + if (pawn == null || pawn.needs == null) return; + + var sexneed = pawn.needs.TryGetNeed(); + if (sexneed != null) + { + sexneed.CurLevelPercentage = SET_SEXNEED_TO; + } + + // Pump up Wake-Ness + if (pawn.needs.rest != null) + pawn.needs.rest.CurLevel += REST_INCREASE; + } + + } +} diff --git a/Source/Rjw-Genes.csproj b/Source/Rjw-Genes.csproj index aa991a2..f684926 100644 --- a/Source/Rjw-Genes.csproj +++ b/Source/Rjw-Genes.csproj @@ -76,6 +76,7 @@ + @@ -239,9 +240,7 @@ False - - - + From b6147dfb826d17c692e8c09466fef25c3f38dac6 Mon Sep 17 00:00:00 2001 From: Vegapnk Date: Wed, 3 Jul 2024 12:33:57 +0200 Subject: [PATCH 6/6] Updated some docs --- CHANGELOG.md | 34 ++++++++++++++++++++++++++++++++++ README.md | 1 + 2 files changed, 35 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 26387d8..8bc0df6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,37 @@ +# 2.2.0 + +**Genetic Diseases** + +This update introduces genetic diseases that are shared on sex. +Infection is handled when sex finishes, so a coitus-interruptus will not result in infections. + +Infections can be + +- Turned off entirely +- Spread only on penetrative sex +- Chances are adjustable per XML per Gene + +By turning their spread off, you effectively have a set of normal negative genes. + +*Why???* + +Most of the genes so far were positive or neutral, +so I got some fair requests to introduce negative genes to keep xenotypes balanced. +I know that this is some overlap with the STD mod, but well ... you are free to turn things off? + +**Additions** + +- Passive Gene: *Genetic Disease Immunity* - cannot get infected by any genetic diseases, and won't be affected by some other genes (see relevant genes) +- Disease Gene: Vulnerability. Pawn is likelier to be raped +- Disease Gene: Infectious Hypersexuality +- Disease Gene: Infectious Homosexuality & Bisexuality +- Disease Gene: Fluctual Sexual Need. (Configurable) Chance to reset sex-need to near-zero and gain a bit of rest-need. + +**Internal** + +- GenderFluid-Gene now uses a generalized `TickBasedChanceExtension` over its unique special `GenderFluidExtension` +- Introduced a `ModLog.Debug` Function that checks for the settings before printing - trying to spread it over the whole project. + # 2.1.0 **Additions**: diff --git a/README.md b/README.md index 697bcdc..a09fef6 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ This mod adds genes related and based on RJW to Rimworld. - Sexual Vampires that need Cum, Cocks or some other sources. - Mech Breeding Additions & Orgasmic Mytosis - Human-Animal Gene Inheritance merged from [Shabakur](https://github.com/Shabakur/RJW_Animal_Gene_Inheritance) +- Genetic Diseases that spread on Intercourse - Patches for some popular / common Xenotypes from other Mods. *You might not see all of them. Many genes just show up if other mods are loaded*.