diff --git a/Common/Assemblies/Rjw-Genes.dll b/Common/Assemblies/Rjw-Genes.dll index bd8049f..b65ab1a 100644 Binary files a/Common/Assemblies/Rjw-Genes.dll and b/Common/Assemblies/Rjw-Genes.dll differ diff --git a/Common/Defs/Genes/GeneCategories.xml b/Common/Defs/Genes/GeneCategories.xml index 68dc199..ab92117 100644 --- a/Common/Defs/Genes/GeneCategories.xml +++ b/Common/Defs/Genes/GeneCategories.xml @@ -50,9 +50,15 @@ - rjw_damage + rjw_genes_damage 11 + + rjw_genes_special + + 8 + + \ No newline at end of file diff --git a/Common/Defs/Genes/GeneDefs_Damage.xml b/Common/Defs/Genes/GeneDefs_Damage.xml index 5922066..b3c21ef 100644 --- a/Common/Defs/Genes/GeneDefs_Damage.xml +++ b/Common/Defs/Genes/GeneDefs_Damage.xml @@ -4,7 +4,7 @@ rjw_genes_elasticity - rjw_damage + rjw_genes_damage This Xenotype cannot get stretched by huge penetrators. Genes/Icons/Elasticity RJW_Genes.Gene_Elasticity diff --git a/Common/Defs/Genes/GeneDefs_SexSpecial.xml b/Common/Defs/Genes/GeneDefs_SexSpecial.xml new file mode 100644 index 0000000..51d4269 --- /dev/null +++ b/Common/Defs/Genes/GeneDefs_SexSpecial.xml @@ -0,0 +1,13 @@ + + + + rjw_genes_orgasm_rush + + rjw_genes_special + On Orgasm, carriers of this gene get a boost in activity. (rest-need is partially filled) + 1 + UI/Memes/FleshPurity + 1 + + + \ No newline at end of file diff --git a/Source/GeneDefOf.cs b/Source/GeneDefOf.cs index 859f9e3..744eb11 100644 --- a/Source/GeneDefOf.cs +++ b/Source/GeneDefOf.cs @@ -10,6 +10,8 @@ namespace RJW_Genes public static readonly GeneCategoryDef rjw_genes_genitalia_size; public static readonly GeneCategoryDef rjw_genes_gender; public static readonly GeneCategoryDef rjw_genes_breeding; + public static readonly GeneCategoryDef rjw_genes_damage; + public static readonly GeneCategoryDef rjw_genes_special; // Base Genitalia Types public static readonly GeneDef rjw_genes_equine_genitalia; @@ -65,5 +67,9 @@ namespace RJW_Genes // Damage & Side Effects [MayRequire("LustLicentia.RJWLabs")] public static readonly GeneDef rjw_genes_elasticity; + + // Special + public static readonly GeneDef rjw_genes_orgasm_rush; + } } diff --git a/Source/Genes/Special/Patch_OrgasmRush.cs b/Source/Genes/Special/Patch_OrgasmRush.cs new file mode 100644 index 0000000..7f4c167 --- /dev/null +++ b/Source/Genes/Special/Patch_OrgasmRush.cs @@ -0,0 +1,31 @@ +using HarmonyLib; +using rjw; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RJW_Genes +{ + + [HarmonyPatch(typeof(SexUtility), nameof(SexUtility.SatisfyPersonal))] + public static class Patch_OrgasmRush + { + + private const float REST_INCREASE = 0.05f; + + public static void Postfix(SexProps props) + { + // ShortCuts: Exit Early if Pawn or Partner are null (can happen with Animals or Masturbation) + if (props.pawn == null || !props.hasPartner()) + return; + + if (props.pawn.genes.HasGene(GeneDefOf.rjw_genes_orgasm_rush)) + { + props.pawn.needs.rest.CurLevel += REST_INCREASE; + } + } + } + +} diff --git a/Source/Rjw-Genes.csproj b/Source/Rjw-Genes.csproj index 94d2403..554b542 100644 --- a/Source/Rjw-Genes.csproj +++ b/Source/Rjw-Genes.csproj @@ -116,6 +116,7 @@ +