diff --git a/Common/Assemblies/Rjw-Genes.dll b/Common/Assemblies/Rjw-Genes.dll index 0642091..e4e66e6 100644 Binary files a/Common/Assemblies/Rjw-Genes.dll and b/Common/Assemblies/Rjw-Genes.dll differ diff --git a/Common/Defs/Genes/GeneDefs_LifeForce.xml b/Common/Defs/Genes/GeneDefs_LifeForce.xml index 6a879dd..21d63f6 100644 --- a/Common/Defs/Genes/GeneDefs_LifeForce.xml +++ b/Common/Defs/Genes/GeneDefs_LifeForce.xml @@ -91,7 +91,7 @@ rjw_genes_vaginal_absorber - Pawns with this gene are able to absorb ferilin through their vagina. + Carriers of this gene are able to absorb ferilin through their vagina. Things/Mote/Heart rjw_genes_lifeforce 2 @@ -102,11 +102,23 @@ rjw_genes_anal_absorber - Pawns with this gene are able to absorb ferilin through their anus. + Carriers of this gene are able to absorb ferilin through their anus. Things/Mote/Heart rjw_genes_lifeforce 3 rjw_genes_fertilin 1 + + + rjw_genes_drainer + + Carriers of this gene are able to absorb a great amount of ferilin by draining the vitality of the partner. + Things/Mote/Heart + rjw_genes_lifeforce + 4 + rjw_genes_fertilin + 1 + -1 + \ No newline at end of file diff --git a/Common/Defs/HediffDefs/Hediffs_Genes.xml b/Common/Defs/HediffDefs/Hediffs_Genes.xml index f8fe65d..41ed3e2 100644 --- a/Common/Defs/HediffDefs/Hediffs_Genes.xml +++ b/Common/Defs/HediffDefs/Hediffs_Genes.xml @@ -8,7 +8,6 @@ Aphrodisiac pheromone effects. (1,0,0.5) - true 1.0
  • @@ -38,9 +37,55 @@
  • -
  • - true -
  • +
  • + true +
  • +
    + + + + Succubus_Drained + HediffWithComps + + The vitality of this pawn has been drained. + (1,0,0.5) + 1.0 + 1.0 + +
  • + -1.0 +
  • +
    + +
  • + + +
  • + Consciousness + -0.1 +
  • + + +
  • + 0.5 + + +
  • + Consciousness + -0.2 +
  • + + +
  • + 0.8 + + +
  • + Consciousness + -0.4 +
  • + +
    \ No newline at end of file diff --git a/Common/Patches/Xenotypes/GenitaliaUpdate.xml b/Common/Patches/Xenotypes/GenitaliaUpdate.xml index f0af1b5..ac8754d 100644 --- a/Common/Patches/Xenotypes/GenitaliaUpdate.xml +++ b/Common/Patches/Xenotypes/GenitaliaUpdate.xml @@ -74,8 +74,19 @@ Defs/XenotypeDef[defName="Highmate"]/genes
  • rjw_genes_hypersexual
  • +
    + + + + +
  • RimJobWorld - Licentia Labs
  • +
    + + Defs/XenotypeDef[defName="Highmate"]/genes +
  • rjw_genes_likes_cumflation
  • +
    diff --git a/Source/GeneDefOf.cs b/Source/GeneDefOf.cs index bd8590f..b9ed677 100644 --- a/Source/GeneDefOf.cs +++ b/Source/GeneDefOf.cs @@ -77,6 +77,7 @@ namespace RJW_Genes public static readonly GeneDef rjw_genes_pussyhealer; public static readonly GeneDef rjw_genes_vaginal_absorber; public static readonly GeneDef rjw_genes_anal_absorber; + public static readonly GeneDef rjw_genes_drainer; // Cosmetic public static readonly GeneDef rjw_genes_succubus_tail; diff --git a/Source/Genes/Cum/CumUtility.cs b/Source/Genes/Cum/CumUtility.cs index 13197e1..b483aed 100644 --- a/Source/Genes/Cum/CumUtility.cs +++ b/Source/Genes/Cum/CumUtility.cs @@ -54,7 +54,7 @@ namespace RJW_Genes CompHediff = part.TryGetComp(); if (CompHediff != null) { - total_cum += CompHediff.FluidAmmount * multiplier; + total_cum += CompHediff.FluidAmmount * CompHediff.FluidModifier * multiplier; } } } diff --git a/Source/Genes/Life_Force/Patch_LifeForce.cs b/Source/Genes/Life_Force/Patch_LifeForce.cs index a20317b..1d63ce5 100644 --- a/Source/Genes/Life_Force/Patch_LifeForce.cs +++ b/Source/Genes/Life_Force/Patch_LifeForce.cs @@ -34,6 +34,7 @@ namespace RJW_Genes if (GeneUtility.HasLifeForce(props.partner)) { Pawn succubus = props.partner; + if (!props.isRevese) { if (props.isReceiver) @@ -66,28 +67,44 @@ namespace RJW_Genes { AbsorbFertilin(props, absorb_factor); } + + if (GeneUtility.HasGeneNullCheck(succubus, GeneDefOf.rjw_genes_drainer) && !props.pawn.health.hediffSet.HasHediff(HediffDefOf.Succubus_Drained)) + { + props.pawn.health.AddHediff(HediffDefOf.Succubus_Drained); + GeneUtility.OffsetLifeForce(succubus, 0.25f); + } } } public static void AbsorbFertilin(SexProps props, float absorb_factor = 1f) { Pawn_GeneTracker genes = props.partner.genes; Gene_LifeForce gene = genes.GetFirstGeneOfType(); - float multiplier = Rand.Range(0.10f, 0.40f); //Around quarter get ejected everytime pawn cums - Hediff fertelin_lost = props.pawn.health.hediffSet.GetFirstHediffOfDef(HediffDefOf.Fertilin_Lost); - if (fertelin_lost == null) + Hediff fertilin_lost = props.pawn.health.hediffSet.GetFirstHediffOfDef(HediffDefOf.Fertilin_Lost); + //Around quarter get ejected everytime pawn cums + float multiplier = Rand.Range(0.10f, 0.40f); + + + //Create a new ferilin_lost hediff or reduce multiplier + if (fertilin_lost == null) { - Hediff new_fertelin_lost = HediffMaker.MakeHediff(HediffDefOf.Fertilin_Lost, props.pawn); - props.pawn.health.AddHediff(new_fertelin_lost); - new_fertelin_lost.Severity = multiplier; + Hediff new_fertilin_lost = HediffMaker.MakeHediff(HediffDefOf.Fertilin_Lost, props.pawn); + props.pawn.health.AddHediff(new_fertilin_lost); + new_fertilin_lost.Severity = multiplier; } else { - multiplier *= 1 - fertelin_lost.Severity; - fertelin_lost.Severity += multiplier; - + multiplier *= 1 - fertilin_lost.Severity; + fertilin_lost.Severity += multiplier; + } + //More in the tank means more to give + if (props.pawn.Has(Quirk.Messy)) + { + multiplier *= 2; } //Currently taking the sum of all penises, maybe I should just consider one at random - gene.Resource.Value += CumUtility.GetTotalFluidAmount(props.pawn) / 100 * absorb_factor * multiplier; + float valuechange = CumUtility.GetTotalFluidAmount(props.pawn) / 100 * absorb_factor * multiplier; + GeneUtility.OffsetLifeForce(props.partner, valuechange); + //gene.Resource.Value += CumUtility.GetTotalFluidAmount(props.pawn) / 100 * absorb_factor * multiplier; } diff --git a/Source/HediffDefOf.cs b/Source/HediffDefOf.cs index 2b753dd..b0425ec 100644 --- a/Source/HediffDefOf.cs +++ b/Source/HediffDefOf.cs @@ -13,5 +13,6 @@ namespace RJW_Genes { public static readonly HediffDef Aphrodisiac_Pheromone; public static readonly HediffDef Fertilin_Lost; + public static readonly HediffDef Succubus_Drained; } }