From e642942c1ec944619b418bd13776c1e2b7648e24 Mon Sep 17 00:00:00 2001 From: Shabakur Date: Wed, 28 Dec 2022 13:37:27 +0100 Subject: [PATCH] Anal/Vaginal Cumabsorption genes, fertilin category, pussyheal requires fertilin now --- Common/Assemblies/Rjw-Genes.dll | Bin 60928 -> 64000 bytes Common/Defs/AbilityDefs/Ability_PussyHeal.xml | 4 +- Common/Defs/Genes/GeneCategories.xml | 8 ++ Common/Defs/Genes/GeneDefs_LifeForce.xml | 83 +++++++----- Common/Defs/Genes/GeneDefs_SexSpecial.xml | 2 +- Source/GeneDefOf.cs | 2 + Source/Genes/GeneUtility.cs | 30 ++++- Source/Genes/Life_Force/AbilityUtility.cs | 19 +++ .../CompAbilityEffect_LifeForceCost.cs | 118 ++++++++++++++++++ .../CompProperties_AbilityLifeForceCost.cs | 28 +++++ .../Life_Force/GeneGizmo_ResourceLifeForce.cs | 4 +- Source/Genes/Life_Force/Patch_LifeForce.cs | 39 +++++- Source/Rjw-Genes.csproj | 2 + 13 files changed, 300 insertions(+), 39 deletions(-) create mode 100644 Source/Genes/Life_Force/CompAbilityEffect_LifeForceCost.cs create mode 100644 Source/Genes/Life_Force/CompProperties_AbilityLifeForceCost.cs diff --git a/Common/Assemblies/Rjw-Genes.dll b/Common/Assemblies/Rjw-Genes.dll index 706a831d22d0ea76c59f003a59e2540c856c831d..9d1ad9ddae2cca2be227e5a03933793377101c64 100644 GIT binary patch literal 64000 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 WB>#JU(D6C2IWI>2=I8$%1^yfE#-4!y literal 60928 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 true false - 60000 Mote_CoagulateStencil Coagulate Coagulate_Cast @@ -28,6 +27,9 @@ +
  • + 0.2 +
  • 0.4~0.8
  • diff --git a/Common/Defs/Genes/GeneCategories.xml b/Common/Defs/Genes/GeneCategories.xml index ab92117..6fe9417 100644 --- a/Common/Defs/Genes/GeneCategories.xml +++ b/Common/Defs/Genes/GeneCategories.xml @@ -37,6 +37,12 @@ 15 + + rjw_genes_fertilin + + 14 + + rjw_genes_breeding @@ -61,4 +67,6 @@ 8 + + \ No newline at end of file diff --git a/Common/Defs/Genes/GeneDefs_LifeForce.xml b/Common/Defs/Genes/GeneDefs_LifeForce.xml index 69db900..dbaa10b 100644 --- a/Common/Defs/Genes/GeneDefs_LifeForce.xml +++ b/Common/Defs/Genes/GeneDefs_LifeForce.xml @@ -2,8 +2,8 @@ rjw_genes_lifeforce - - Carriers of this gene have a reserve of biological strength powered by a resource called lifeforce. The resource can be gained and spent in various ways, all of which are unlocked by other genes.\n\nCarriers lose 10 lifeforce per day from biological entropy. + + Carriers of this gene have a reserve of biological strength powered by a resource called fertilin. The resource can be gained and spent in various ways, all of which are unlocked by other genes.\n\nCarriers lose 10 lifeforce per day from biological entropy. RJW_Genes.Gene_LifeForce RJW_Genes.GeneGizmo_ResourceLifeForce lifeforce @@ -14,13 +14,13 @@ true true - A reserve of biological strength which can be gained and spent in a variety of ways. \n\nLifeforce can be increased by absorbing cum, typically through oral sex or stored cum. \n\nIf lifeforce reaches zero, {PAWN_nameDef} will become very unhappy and may try to obtain some forcefully. + A reserve of biological strength which can be gained and spent in a variety of ways. \n\nFertilin can be increased by absorbing cum, typically through oral sex or stored cum. \n\nIf fertilin reaches zero, {PAWN_nameDef} will become very unhappy and may try to obtain some forcefully. UI/Icons/Genes/Gene_Hemogenic 0 - Hemogen + rjw_genes_fertilin -2 -
  • Gives lifeforce supply.
  • +
  • Gives fertilin supply.
  • @@ -28,33 +28,60 @@ rjw_genes_lifeforce_randomrape - 13 + 18 0.02 1 1
    - rjw_genes_pussyhealer - - pussyhealer - Carriers of this gene are able use vaginal sex to tend to other's wounds. - Things/Mote/Heart - Ability - -
  • rjw_genes_pussyheal
  • -
    - - rjw_genes_pussyheal - - 1 - 13 - - -
  • life
  • -
  • clotter
  • -
  • tender
  • -
    -
    -
    + rjw_genes_pussyhealer + + pussyhealer + Carriers of this gene are able use vaginal sex to tend to other's wounds. + Things/Mote/Heart + rjw_genes_lifeforce + 10 + rjw_genes_fertilin + +
  • rjw_genes_pussyheal
  • +
    + + rjw_genes_pussyheal + + 1 + -1 + 18 + + +
  • life
  • +
  • clotter
  • +
  • tender
  • +
    +
    + + + + rjw_genes_vaginal_absorber + + Pawns with this gene are able to absorb ferilin through their vagina. + Things/Mote/Heart + rjw_genes_lifeforce + 2 + rjw_genes_fertilin + 1 + -1 + + + + rjw_genes_anal_absorber + + Pawns with this gene are able to absorb ferilin through their anus. + Things/Mote/Heart + rjw_genes_lifeforce + 3 + rjw_genes_fertilin + 1 + -1 +
    \ No newline at end of file diff --git a/Common/Defs/Genes/GeneDefs_SexSpecial.xml b/Common/Defs/Genes/GeneDefs_SexSpecial.xml index 3b29889..3761995 100644 --- a/Common/Defs/Genes/GeneDefs_SexSpecial.xml +++ b/Common/Defs/Genes/GeneDefs_SexSpecial.xml @@ -15,7 +15,7 @@ rjw_genes_special RJW_Genes.Gene_Aphrodisiac_Pheromones - Pheremones of this pawn induce an incressed sexdrive to others nearby. + Pheremones of this pawn induce an increased sexdrive to others nearby. UI/Memes/FleshPurity 2 1 diff --git a/Source/GeneDefOf.cs b/Source/GeneDefOf.cs index 5ac85dd..37446c0 100644 --- a/Source/GeneDefOf.cs +++ b/Source/GeneDefOf.cs @@ -75,5 +75,7 @@ namespace RJW_Genes // LifeForce public static readonly GeneDef rjw_genes_lifeforce; public static readonly GeneDef rjw_genes_pussyhealer; + public static readonly GeneDef rjw_genes_vaginal_absorber; + public static readonly GeneDef rjw_genes_anal_absorber; } } diff --git a/Source/Genes/GeneUtility.cs b/Source/Genes/GeneUtility.cs index 0a8d571..9ae4711 100644 --- a/Source/Genes/GeneUtility.cs +++ b/Source/Genes/GeneUtility.cs @@ -1,10 +1,38 @@ using System; using Verse; - +using RimWorld; namespace RJW_Genes { public class GeneUtility { + //Instead of seperate functions this should be simpeler + public static bool HasGeneNullCheck(Pawn pawn, GeneDef genedef) + { + if (pawn.genes == null) + { + return false; + } + return pawn.genes.HasGene(genedef); + } + + public static void OffsetLifeForce(Pawn pawn, float offset, bool applyStatFactor = true) + { + if (!ModsConfig.BiotechActive) + { + return; + } + //if (offset > 0f && applyStatFactor) + //{ + // offset *= pawn.GetStatValue(StatDefOf.HemogenGainFactor, true, -1); + //} + Pawn_GeneTracker genes2 = pawn.genes; + Gene_LifeForce gene_LifeFroce = (genes2 != null) ? genes2.GetFirstGeneOfType() : null; + if (gene_LifeFroce != null) + { + gene_LifeFroce.Value += offset; + } + } + public static bool IsMechbreeder(Pawn pawn) { if (pawn.genes == null) diff --git a/Source/Genes/Life_Force/AbilityUtility.cs b/Source/Genes/Life_Force/AbilityUtility.cs index 896694e..3f18b71 100644 --- a/Source/Genes/Life_Force/AbilityUtility.cs +++ b/Source/Genes/Life_Force/AbilityUtility.cs @@ -48,5 +48,24 @@ namespace RJW_Genes } return any_wound_tended; } + + public static float LifeForceCost(Ability ability) + { + if (ability.comps != null) + { + using (List.Enumerator enumerator = ability.comps.GetEnumerator()) + { + while (enumerator.MoveNext()) + { + CompAbilityEffect_LifeForceCost compAbilityEffect_HemogenCost; + if ((compAbilityEffect_HemogenCost = (enumerator.Current as CompAbilityEffect_LifeForceCost)) != null) + { + return compAbilityEffect_HemogenCost.Props.fertilinCost; + } + } + } + } + return 0f; + } } } \ No newline at end of file diff --git a/Source/Genes/Life_Force/CompAbilityEffect_LifeForceCost.cs b/Source/Genes/Life_Force/CompAbilityEffect_LifeForceCost.cs new file mode 100644 index 0000000..70f9e40 --- /dev/null +++ b/Source/Genes/Life_Force/CompAbilityEffect_LifeForceCost.cs @@ -0,0 +1,118 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; +using Verse; +using Verse.AI; +using RimWorld; +namespace RJW_Genes +{ + // Token: 0x02000F66 RID: 3942 + public class CompAbilityEffect_LifeForceCost : CompAbilityEffect + { + // Token: 0x17000FFB RID: 4091 + // (get) Token: 0x06005D18 RID: 23832 RVA: 0x001FA767 File Offset: 0x001F8967 + public new CompProperties_AbilityLifeForceCost Props + { + get + { + return (CompProperties_AbilityLifeForceCost)this.props; + } + } + + // Token: 0x17000FFC RID: 4092 + // (get) Token: 0x06005D19 RID: 23833 RVA: 0x001FA774 File Offset: 0x001F8974 + private bool HasEnoughFertilin + { + get + { + Pawn_GeneTracker genes = this.parent.pawn.genes; + Gene_LifeForce gene_lifeforce = (genes != null) ? genes.GetFirstGeneOfType < Gene_LifeForce>() : null; + return gene_lifeforce != null && gene_lifeforce.Value >= this.Props.fertilinCost; + } + } + + // Token: 0x06005D1A RID: 23834 RVA: 0x001FA7B7 File Offset: 0x001F89B7 + public override void Apply(LocalTargetInfo target, LocalTargetInfo dest) + { + base.Apply(target, dest); + GeneUtility.OffsetLifeForce(this.parent.pawn, -this.Props.fertilinCost, true); + } + + // Token: 0x06005D1B RID: 23835 RVA: 0x001FA7E0 File Offset: 0x001F89E0 + public override bool GizmoDisabled(out string reason) + { + Pawn_GeneTracker genes = this.parent.pawn.genes; + Gene_LifeForce gene_LifeForce = (genes != null) ? genes.GetFirstGeneOfType() : null; + if (gene_LifeForce == null) + { + reason = "AbilityDisabledNoFertilinGene".Translate(this.parent.pawn); + return true; + } + if (gene_LifeForce.Value < this.Props.fertilinCost) + { + reason = "AbilityDisabledNoFertilin".Translate(this.parent.pawn); + return true; + } + float num = this.TotalLifeForceCostOfQueuedAbilities(); + float num2 = this.Props.fertilinCost + num; + if (this.Props.fertilinCost > 1E-45f && num2 > gene_LifeForce.Value) + { + reason = "AbilityDisabledNoFertilin".Translate(this.parent.pawn); + return true; + } + reason = null; + return false; + } + + public override bool AICanTargetNow(LocalTargetInfo target) + { + return this.HasEnoughFertilin; + } + + private float TotalLifeForceCostOfQueuedAbilities() + { + Pawn_JobTracker jobs = this.parent.pawn.jobs; + object obj; + if (jobs == null) + { + obj = null; + } + else + { + Job curJob = jobs.curJob; + obj = ((curJob != null) ? curJob.verbToUse : null); + } + Verb_CastAbility verb_CastAbility = obj as Verb_CastAbility; + float num; + if (verb_CastAbility == null) + { + num = 0f; + } + else + { + Ability ability = verb_CastAbility.ability; + num = ((ability != null) ? AbilityUtility.LifeForceCost(ability) : 0f); + } + float num2 = num; + if (this.parent.pawn.jobs != null) + { + for (int i = 0; i < this.parent.pawn.jobs.jobQueue.Count; i++) + { + Verb_CastAbility verb_CastAbility2; + if ((verb_CastAbility2 = (this.parent.pawn.jobs.jobQueue[i].job.verbToUse as Verb_CastAbility)) != null) + { + float num3 = num2; + Ability ability2 = verb_CastAbility2.ability; + num2 = num3 + ((ability2 != null) ? AbilityUtility.LifeForceCost(ability2) : 0f); + } + } + } + return num2; + } + + //Modified version of HemogenCost in Ability + + } +} diff --git a/Source/Genes/Life_Force/CompProperties_AbilityLifeForceCost.cs b/Source/Genes/Life_Force/CompProperties_AbilityLifeForceCost.cs new file mode 100644 index 0000000..5a05d5f --- /dev/null +++ b/Source/Genes/Life_Force/CompProperties_AbilityLifeForceCost.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using UnityEngine; +using Verse; +using RimWorld; + +namespace RJW_Genes +{ + // Token: 0x02000F65 RID: 3941 + public class CompProperties_AbilityLifeForceCost : CompProperties_AbilityEffect + { + // Token: 0x06005D16 RID: 23830 RVA: 0x001FA73F File Offset: 0x001F893F + public CompProperties_AbilityLifeForceCost() + { + this.compClass = typeof(CompAbilityEffect_LifeForceCost); + } + + // Token: 0x06005D17 RID: 23831 RVA: 0x001FA757 File Offset: 0x001F8957 + public override IEnumerable ExtraStatSummary() + { + yield return "AbilityFertilinCost" + ": " + Mathf.RoundToInt(this.fertilinCost * 100f); + yield break; + } + + // Token: 0x040038CD RID: 14541 + public float fertilinCost; + } +} diff --git a/Source/Genes/Life_Force/GeneGizmo_ResourceLifeForce.cs b/Source/Genes/Life_Force/GeneGizmo_ResourceLifeForce.cs index 1dee43d..f2b0055 100644 --- a/Source/Genes/Life_Force/GeneGizmo_ResourceLifeForce.cs +++ b/Source/Genes/Life_Force/GeneGizmo_ResourceLifeForce.cs @@ -30,11 +30,11 @@ namespace RJW_Genes { if (this.gene.targetValue <= 0f) { - text += "NeverConsumeCum"; + text += "NeverSeekFertilin"; } else { - text = text + ("ConsumeCumBelow" + ": ") + this.gene.PostProcessValue(this.gene.targetValue); + text = text + ("SeekFertilinBelow" + ": ") + this.gene.PostProcessValue(this.gene.targetValue); } } if (!this.drainGenes.NullOrEmpty()) diff --git a/Source/Genes/Life_Force/Patch_LifeForce.cs b/Source/Genes/Life_Force/Patch_LifeForce.cs index 5c73e6d..e7b7811 100644 --- a/Source/Genes/Life_Force/Patch_LifeForce.cs +++ b/Source/Genes/Life_Force/Patch_LifeForce.cs @@ -10,7 +10,7 @@ using Verse; namespace RJW_Genes { - + [HarmonyPatch(typeof(SexUtility), nameof(SexUtility.SatisfyPersonal))] public static class Patch_LifeForce { @@ -20,16 +20,43 @@ namespace RJW_Genes if (props.pawn == null || !props.hasPartner()) return; + float factor = 1f; if (GeneUtility.HasLifeForce(props.pawn)) { if (props.sexType == xxx.rjwSextype.Oral || props.sexType == xxx.rjwSextype.Fellatio || props.sexType == xxx.rjwSextype.Sixtynine) - { - Pawn_GeneTracker genes = props.pawn.genes; - Gene_LifeForce gene = genes.GetFirstGeneOfType(); - gene.Resource.Value += CumUtility.GetTotalFluidAmount(props.partner); //total amount may need to be modified to be balanced or maybe I should just consider one at random + { + AbsorbFertilin(props, factor); + //Currently taking the sum of all penises, maybe I should just consider one at random } - } + else if (props.sexType == xxx.rjwSextype.Vaginal && GeneUtility.HasGeneNullCheck(props.pawn, GeneDefOf.rjw_genes_vaginal_absorber)) + { + AbsorbFertilin(props, factor); + } + else if (props.sexType == xxx.rjwSextype.Anal && GeneUtility.HasGeneNullCheck(props.pawn, GeneDefOf.rjw_genes_anal_absorber)) + { + AbsorbFertilin(props, factor); + } + else if (props.sexType == xxx.rjwSextype.DoublePenetration) + { + if (GeneUtility.HasGeneNullCheck(props.pawn, GeneDefOf.rjw_genes_vaginal_absorber)) + { + AbsorbFertilin(props, 0.5f); + } + if (GeneUtility.HasGeneNullCheck(props.pawn, GeneDefOf.rjw_genes_anal_absorber)) + { + AbsorbFertilin(props, 0.5f); + } + } + } + } + public static void AbsorbFertilin(SexProps props, float factor = 1f) + { + Pawn_GeneTracker genes = props.pawn.genes; + Gene_LifeForce gene = genes.GetFirstGeneOfType(); + gene.Resource.Value += CumUtility.GetTotalFluidAmount(props.partner) / 100 * factor; } } + + } diff --git a/Source/Rjw-Genes.csproj b/Source/Rjw-Genes.csproj index 26c21bf..1b2f469 100644 --- a/Source/Rjw-Genes.csproj +++ b/Source/Rjw-Genes.csproj @@ -115,8 +115,10 @@ + +