diff --git a/Common/Assemblies/Rjw-Genes.dll b/Common/Assemblies/Rjw-Genes.dll index 2281f8c..c4c89b1 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 3ad1981..efa275e 100644 --- a/Common/Defs/Genes/GeneDefs_LifeForce.xml +++ b/Common/Defs/Genes/GeneDefs_LifeForce.xml @@ -27,7 +27,6 @@
  • fert
  • - rjw_genes_lifeforce_randomrape 0.05 1 1 @@ -152,10 +151,21 @@ + + rjw_genes_cum_eater + + Carriers of this gene are able to absorb fertilin through eating cum. + Things/Mote/Heart + rjw_genes_lifeforce + 1 + rjw_genes_fertilin + 1 + + rjw_genes_vaginal_absorber - Carriers of this gene are able to absorb fertilin through their vagina. + Carriers of this gene are able to absorb the fertilin inside sperm through their vagina. Things/Mote/Heart rjw_genes_lifeforce 2 @@ -166,7 +176,7 @@ rjw_genes_anal_absorber - Carriers of this gene are able to absorb fertilin through their anus. + Carriers of this gene are able to absorb the fertilin inside sperm through their anus. Things/Mote/Heart rjw_genes_lifeforce 3 diff --git a/Common/Defs/HediffDefs/Hediffs_Succubus.xml b/Common/Defs/HediffDefs/Hediffs_Succubus.xml index b0a9cc9..cb01a23 100644 --- a/Common/Defs/HediffDefs/Hediffs_Succubus.xml +++ b/Common/Defs/HediffDefs/Hediffs_Succubus.xml @@ -1,10 +1,10 @@  - Aphrodisiac_Pheromone + rjw_genes_aphrodisiac_pheromone HediffWithComps - Aphrodisiac pheromone effects. + sex drive increasing due to smelling aphrodisiac pheromones. (1,0,0.5) 1.0 @@ -16,15 +16,15 @@
  • true - 2 + 2
  • - Fertilin_Lost - RJW_Genes.HediffWithComps_tank + rjw_genes_fertilin_lost + Hediff_HemogenCraving Percentage of fertilin lost. (1,1,1) @@ -42,7 +42,7 @@ - Succubus_Drained + rjw_genes_succubus_drained HediffWithComps The vitality of this pawn has been drained. @@ -86,4 +86,54 @@ + + + rjw_genes_fertilin_craving + + Hediff_HemogenCraving + weakened due to running out of fertilin. + (1,0,0.5) + 1.0 + 0.01 + +
  • + + 0.05 + +
  • + Consciousness + 0.9 +
  • + + +
  • + + 0.35 + 0.1 + +
  • + Consciousness + 0.8 +
  • + + +
  • + + 0.7 + 0.15 + +
  • + Consciousness + 0.5 +
  • + + +
    + +
  • + 0.05 + -0.1 +
  • +
    +
    \ No newline at end of file diff --git a/Common/Defs/ThoughtDefs/Thoughts_LifeForce.xml b/Common/Defs/ThoughtDefs/Thoughts_LifeForce.xml index bca1f93..a43d67f 100644 --- a/Common/Defs/ThoughtDefs/Thoughts_LifeForce.xml +++ b/Common/Defs/ThoughtDefs/Thoughts_LifeForce.xml @@ -32,13 +32,25 @@ - rjw_critical_fertilin - -
  • - - I'm almost out of fertilin. I'm scared of losing control. - -10 -
  • -
    -
    + rjw_genes_critical_fertilin + ThoughtWorker_Hediff + rjw_genes_fertilin_craving + +
  • + + My bones ache. I really need fertilin. + -10 +
  • +
  • + + This hurts bad and I can't stop thinking about sex. I would do anything for some cum. + -15 +
  • +
  • + + Can't think. Sex. Sex. Must. Have. Cum. + -20 +
  • +
    + diff --git a/Common/Defs/Xenotypes/Succubus.xml b/Common/Defs/Xenotypes/Succubus.xml index 6cfb79d..66e73b6 100644 --- a/Common/Defs/Xenotypes/Succubus.xml +++ b/Common/Defs/Xenotypes/Succubus.xml @@ -28,12 +28,10 @@
  • rjw_genes_female_only
  • rjw_genes_lifeforce
  • rjw_genes_lifeforce_drain
  • +
  • rjw_genes_cum_eater
  • rjw_genes_vaginal_absorber
  • rjw_genes_anal_absorber
  • -
  • rjw_genes_drainer
  • - -
  • rjw_genes_pussyhealing
  • rjw_genes_paralysingkiss
  • rjw_genes_seduce
  • rjw_genes_elasticity
  • diff --git a/Common/Languages/English/Keyed/Lifeforce.xml b/Common/Languages/English/Keyed/Lifeforce.xml index 65b022f..ddd1344 100644 --- a/Common/Languages/English/Keyed/Lifeforce.xml +++ b/Common/Languages/English/Keyed/Lifeforce.xml @@ -3,7 +3,7 @@ Pawn doesn't have required fertilin gene. Not enough fertilin to cast. - + This happened because of low fertilin. Low fertilin A colonist has low fertilin. At this point they are becoming desperate enough to consider rape and bestiality to obtain fertilin (if they didn't already). At zero fertilin they will lose all sense and start raping randomly diff --git a/Source/GeneDefOf.cs b/Source/GeneDefOf.cs index 3431a12..132fbc3 100644 --- a/Source/GeneDefOf.cs +++ b/Source/GeneDefOf.cs @@ -81,6 +81,7 @@ namespace RJW_Genes public static readonly GeneDef rjw_genes_lifeforce; public static readonly GeneDef rjw_genes_pussyhealing; public static readonly GeneDef rjw_genes_lifeforce_drain; + public static readonly GeneDef rjw_genes_cum_eater; public static readonly GeneDef rjw_genes_vaginal_absorber; public static readonly GeneDef rjw_genes_anal_absorber; public static readonly GeneDef rjw_genes_drainer; @@ -89,10 +90,10 @@ namespace RJW_Genes public static readonly GeneDef rjw_genes_succubus_tail; public static readonly GeneDef rjw_genes_succubus_wings; - - public static readonly XenotypeDef rjw_genes_succubus; - //Other Defs + public static readonly XenotypeDef rjw_genes_succubus; public static readonly DutyDef rjw_genes_flirt; + public static readonly MentalBreakDef rjw_genes_lifeforce_randomrape; + } } diff --git a/Source/Genes/GeneUtility.cs b/Source/Genes/GeneUtility.cs index 5b48a18..79d77f0 100644 --- a/Source/Genes/GeneUtility.cs +++ b/Source/Genes/GeneUtility.cs @@ -28,16 +28,21 @@ namespace RJW_Genes { float old_value = drain.Resource.Value; drain.Resource.Value += offset; - //PostOffSetLifeForce(drain, old_value); + PostOffSetLifeForce(drain, old_value); } public static void PostOffSetLifeForce(IGeneResourceDrain drain, float old_value) { if (old_value > 0.2f && drain.Resource.Value <= 0.2f) + { + //Mood debuff + } + else if (old_value > 0f && drain.Resource.Value <= 0f) { - Pawn pawn = drain.Pawn; - - //Do things + if (!drain.Pawn.health.hediffSet.HasHediff(HediffDefOf.rjw_genes_fertilin_craving)) + { + drain.Pawn.health.AddHediff(HediffDefOf.rjw_genes_fertilin_craving); + } } } diff --git a/Source/Genes/Life_Force/Gene_LifeForce.cs b/Source/Genes/Life_Force/Gene_LifeForce.cs index 5bb73b6..8cac6b3 100644 --- a/Source/Genes/Life_Force/Gene_LifeForce.cs +++ b/Source/Genes/Life_Force/Gene_LifeForce.cs @@ -46,32 +46,19 @@ namespace RJW_Genes { yield return gizmo; } - foreach (Gizmo gizmo2 in GeneResourceDrainUtility.GetResourceDrainGizmos(this)) - { - yield return gizmo2; - } yield break; } - //Depending on how low the value is it will increase sexdrive and if it reaches zero it will create a mental break which will make the pawn rape others. - //Not using base.Tick() as it is used to start mental breaks, but we have another way to do it. + //every tick it decreases fertilin value and everyday if fertilin is below alert minimum there a ~50 chance for mental break public override void Tick() { - //base.Tick(); + base.Tick(); if (this.CanOffset && this.Resource != null) { GeneUtility.OffsetLifeForce(this, -this.ResourceLossPerDay / 60000f); - //this.Resource.Value -= this.ResourceLossPerDay / 60000; - if (this.Resource.Value <= 0 && this.pawn.IsHashIntervalTick(300)) - { - if (ModsConfig.BiotechActive && this.def.mentalBreakDef != null && - this.pawn.Spawned && !this.pawn.InMentalState && !this.pawn.Downed && - this.def.mentalBreakDef.Worker.BreakCanOccur(this.pawn)) - { - this.def.mentalBreakDef.Worker.TryStart(this.pawn, "MentalStateReason_Gene".Translate() + ": " + this.LabelCap, false); - } - } - } + + } + } public bool StoredCumAllowed = true; diff --git a/Source/Genes/Life_Force/Gene_LifeForceDrain.cs b/Source/Genes/Life_Force/Gene_LifeForceDrain.cs index 335e257..c50dae5 100644 --- a/Source/Genes/Life_Force/Gene_LifeForceDrain.cs +++ b/Source/Genes/Life_Force/Gene_LifeForceDrain.cs @@ -60,17 +60,6 @@ namespace RJW_Genes } } - public override IEnumerable GetGizmos() - { - foreach (Gizmo gizmo in GeneResourceDrainUtility.GetResourceDrainGizmos(this)) - { - yield return gizmo; - } - IEnumerator enumerator = null; - yield break; - yield break; - } - [Unsaved(false)] private Gene_LifeForce cachedLifeForceGene; diff --git a/Source/Genes/Life_Force/HediffCompProperties_SeverityFromFertilin.cs b/Source/Genes/Life_Force/HediffCompProperties_SeverityFromFertilin.cs new file mode 100644 index 0000000..558c3e0 --- /dev/null +++ b/Source/Genes/Life_Force/HediffCompProperties_SeverityFromFertilin.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse; +using RimWorld; +namespace RJW_Genes +{ + public class HediffCompProperties_SeverityFromFertilin : HediffCompProperties + { + public HediffCompProperties_SeverityFromFertilin() + { + this.compClass = typeof(HediffComp_SeverityFromFertilin); + } + + // Token: 0x04001162 RID: 4450 + public float severityPerHourEmpty; + + // Token: 0x04001163 RID: 4451 + public float severityPerHourHemogen; + } +} diff --git a/Source/Genes/Life_Force/HediffComp_SeverityFromFertilin.cs b/Source/Genes/Life_Force/HediffComp_SeverityFromFertilin.cs new file mode 100644 index 0000000..d497d59 --- /dev/null +++ b/Source/Genes/Life_Force/HediffComp_SeverityFromFertilin.cs @@ -0,0 +1,65 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse; +using RimWorld; +namespace RJW_Genes +{ + public class HediffComp_SeverityFromFertilin : HediffComp + { + public HediffCompProperties_SeverityFromFertilin Props + { + get + { + return (HediffCompProperties_SeverityFromFertilin)this.props; + } + } + public override bool CompShouldRemove + { + get + { + Pawn_GeneTracker genes = base.Pawn.genes; + return ((genes != null) ? genes.GetFirstGeneOfType() : null) == null; + } + } + private Gene_LifeForce LifeForce + { + get + { + if (this.cachedLifeForceGene == null) + { + this.cachedLifeForceGene = base.Pawn.genes.GetFirstGeneOfType(); + } + return this.cachedLifeForceGene; + } + } + public override void CompPostTick(ref float severityAdjustment) + { + base.CompPostTick(ref severityAdjustment); + severityAdjustment += ((this.LifeForce.Value > 0f) ? this.Props.severityPerHourHemogen : this.Props.severityPerHourEmpty) / 2500f; + this.MentalBreak(); + } + + public void MentalBreak() + { + if (cachedLifeForceGene.Resource.Value <= cachedLifeForceGene.Resource.MinLevelForAlert && this.Pawn.IsHashIntervalTick(2500) && Rand.Chance(0.03f)) //~50% chance each day for mental break + { + if (this.Pawn.genes.HasGene(GeneDefOf.rjw_genes_cum_eater) + || this.Pawn.genes.HasGene(GeneDefOf.rjw_genes_vaginal_absorber) || this.Pawn.genes.HasGene(GeneDefOf.rjw_genes_anal_absorber) || this.Pawn.genes.HasGene(GeneDefOf.rjw_genes_drainer)) + { + MentalBreakDef randomrape = GeneDefOf.rjw_genes_lifeforce_randomrape; + if (ModsConfig.BiotechActive && + this.Pawn.Spawned && !this.Pawn.InMentalState && !this.Pawn.Downed && + randomrape.Worker.BreakCanOccur(this.Pawn)) + { + randomrape.Worker.TryStart(this.Pawn, "MentalBreakNoFertilin".Translate(), false); + } + } + } + } + + private Gene_LifeForce cachedLifeForceGene; + } +} diff --git a/Source/Genes/Life_Force/HediffWithComps_tank.cs b/Source/Genes/Life_Force/HediffWithComps_tank.cs deleted file mode 100644 index 7dcea63..0000000 --- a/Source/Genes/Life_Force/HediffWithComps_tank.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using RimWorld; -using Verse; -namespace RJW_Genes -{ - internal class HediffWithComps_tank : HediffWithComps - { - public override string LabelInBrackets - { - get - { - StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.Append(base.LabelInBrackets); - stringBuilder.Append(this.Severity.ToStringPercent()); - return stringBuilder.ToString(); - } - } - } -} diff --git a/Source/Genes/Life_Force/IngestionOutcomeDoer_LifeForceOffset.cs b/Source/Genes/Life_Force/IngestionOutcomeDoer_LifeForceOffset.cs index 65e458e..f3e50f1 100644 --- a/Source/Genes/Life_Force/IngestionOutcomeDoer_LifeForceOffset.cs +++ b/Source/Genes/Life_Force/IngestionOutcomeDoer_LifeForceOffset.cs @@ -12,7 +12,7 @@ namespace RJW_Genes { protected override void DoIngestionOutcomeSpecial(Pawn pawn, Thing ingested) { - if (GeneUtility.HasLifeForce(pawn)) + if (GeneUtility.HasLifeForce(pawn) && GeneUtility.HasGeneNullCheck(pawn, GeneDefOf.rjw_genes_cum_eater)) { float num = ingested.stackCount * this.FertilinPerUnit / 100; GeneUtility.OffsetLifeForce(GeneUtility.GetLifeForceGene(pawn), num); diff --git a/Source/Genes/Life_Force/Patch_LifeForce.cs b/Source/Genes/Life_Force/Patch_LifeForce.cs index 955e46e..cc4da8e 100644 --- a/Source/Genes/Life_Force/Patch_LifeForce.cs +++ b/Source/Genes/Life_Force/Patch_LifeForce.cs @@ -64,29 +64,29 @@ namespace RJW_Genes //If we remove this check fertelin is always lost, but the succubus doesn't always gain any if (absorb_factor != 0f) { - AbsorbFertilin(props, absorb_factor); + TransferFertilin(props, absorb_factor); } - if (GeneUtility.HasGeneNullCheck(succubus, GeneDefOf.rjw_genes_drainer) && !props.pawn.health.hediffSet.HasHediff(HediffDefOf.Succubus_Drained)) + if (GeneUtility.HasGeneNullCheck(succubus, GeneDefOf.rjw_genes_drainer) && !props.pawn.health.hediffSet.HasHediff(HediffDefOf.rjw_genes_succubus_drained)) { - props.pawn.health.AddHediff(HediffDefOf.Succubus_Drained); + props.pawn.health.AddHediff(HediffDefOf.rjw_genes_succubus_drained); GeneUtility.OffsetLifeForce(GeneUtility.GetLifeForceGene(succubus), 0.25f); } } } - public static void AbsorbFertilin(SexProps props, float absorb_factor = 1f) + public static void TransferFertilin(SexProps props, float absorb_percentage = 1f) { Pawn_GeneTracker genes = props.partner.genes; Gene_LifeForce gene = genes.GetFirstGeneOfType(); - Hediff fertilin_lost = props.pawn.health.hediffSet.GetFirstHediffOfDef(HediffDefOf.Fertilin_Lost); + Hediff fertilin_lost = props.pawn.health.hediffSet.GetFirstHediffOfDef(HediffDefOf.rjw_genes_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 + //Create a new ferilin_lost hediff or increase it if (fertilin_lost == null) { - Hediff new_fertilin_lost = HediffMaker.MakeHediff(HediffDefOf.Fertilin_Lost, props.pawn); + Hediff new_fertilin_lost = HediffMaker.MakeHediff(HediffDefOf.rjw_genes_fertilin_lost, props.pawn); props.pawn.health.AddHediff(new_fertilin_lost); new_fertilin_lost.Severity = multiplier; } @@ -95,22 +95,35 @@ namespace RJW_Genes 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; - } + + multiplier *= absorb_percentage; //Currently taking the sum of all penises, maybe I should just consider one at random - float valuechange = CumUtility.GetTotalFluidAmount(props.pawn) / 100 * absorb_factor * multiplier; + float valuechange = TotalFertilinAmount(props, multiplier); GeneUtility.OffsetLifeForce(GeneUtility.GetLifeForceGene(props.partner), valuechange); //gene.Resource.Value += CumUtility.GetTotalFluidAmount(props.pawn) / 100 * absorb_factor * multiplier; } + public static float TotalFertilinAmount(SexProps props, float multiplier) + { + float total_fluid = CumUtility.GetTotalFluidAmount(props.pawn) / 100; + + //More in the tank means more to give + if (props.pawn.Has(Quirk.Messy)) + { + total_fluid *= 2; + } + if (props.pawn.RaceProps.Animal) + { + total_fluid *= 0.1f; //Should make this settable in settings + } + + return total_fluid; + } public static float BaseDom(SexProps props, Pawn succubus) { float absorb_factor = 0f; - if (props.sexType == xxx.rjwSextype.Sixtynine) + if (props.sexType == xxx.rjwSextype.Sixtynine && GeneUtility.HasGeneNullCheck(succubus, GeneDefOf.rjw_genes_cum_eater)) { absorb_factor += 1f; } @@ -120,7 +133,8 @@ namespace RJW_Genes public static float BaseSub(SexProps props, Pawn succubus) { float absorb_factor = 0f; - if (props.sexType == xxx.rjwSextype.Oral || props.sexType == xxx.rjwSextype.Fellatio || props.sexType == xxx.rjwSextype.Sixtynine) + if ((props.sexType == xxx.rjwSextype.Oral || props.sexType == xxx.rjwSextype.Fellatio || props.sexType == xxx.rjwSextype.Sixtynine) + && GeneUtility.HasGeneNullCheck(succubus, GeneDefOf.rjw_genes_cum_eater)) { absorb_factor += 1f; } diff --git a/Source/Genes/Life_Force/Patch_SexTicks_ChangePsyfocus.cs b/Source/Genes/Life_Force/Patch_SexTicks_ChangePsyfocus.cs index dd3444b..ea0d9d6 100644 --- a/Source/Genes/Life_Force/Patch_SexTicks_ChangePsyfocus.cs +++ b/Source/Genes/Life_Force/Patch_SexTicks_ChangePsyfocus.cs @@ -24,7 +24,7 @@ namespace RJW_Genes Pawn pawn2 = target as Pawn; if (pawn2 != null) { - //We need who the pawn on top is and if reverse we need to make the sub the pawn on top + //We need to know who the pawn on top is and if reverse we need to make the sub the pawn on top if (__instance.Sexprops.isRevese) { @@ -44,7 +44,7 @@ namespace RJW_Genes public static void DrinkCumflation(Pawn dom, Pawn sub) { - if (GeneUtility.HasLifeForce(sub) && dom.health.hediffSet.HasHediff(HediffDef.Named("Cumflation"))) + if (GeneUtility.HasLifeForce(sub) && GeneUtility.HasGeneNullCheck(sub,GeneDefOf.rjw_genes_cum_eater)&& dom.health.hediffSet.HasHediff(HediffDef.Named("Cumflation"))) { Hediff cumflation = dom.health.hediffSet.GetFirstHediffOfDef(HediffDef.Named("Cumflation")); Gene_LifeForce gene_LifeForce = sub.genes.GetFirstGeneOfType(); diff --git a/Source/Genes/Life_Force/ThinkNode_NewFlirtTarget.cs b/Source/Genes/Life_Force/ThinkNode_NewFlirtTarget.cs index c5a6665..9dee5ad 100644 --- a/Source/Genes/Life_Force/ThinkNode_NewFlirtTarget.cs +++ b/Source/Genes/Life_Force/ThinkNode_NewFlirtTarget.cs @@ -12,7 +12,8 @@ namespace RJW_Genes { public override ThinkResult TryIssueJobPackage(Pawn pawn, JobIssueParams jobParams) { - Pawn new_target = ValidTargets(pawn, pawn.Map).RandomElement(); + List validTargets = ValidTargets(pawn, pawn.Map).ToList(); + Pawn new_target = validTargets.NullOrEmpty() ? null : validTargets.RandomElement(); if (new_target != null) { pawn.mindState.duty.focus = new_target; diff --git a/Source/Genes/Special/Gene_Aphrodisiac_Pheromones_.cs b/Source/Genes/Special/Gene_Aphrodisiac_Pheromones_.cs index c01652b..0500366 100644 --- a/Source/Genes/Special/Gene_Aphrodisiac_Pheromones_.cs +++ b/Source/Genes/Special/Gene_Aphrodisiac_Pheromones_.cs @@ -48,7 +48,7 @@ namespace RJW_Genes //Applies or renews a hediff which increases sexdrive for 1 hours private void InduceAphrodisiac(Pawn pawn, float sexfrequency) { - Hediff hediff = pawn.health.hediffSet.GetFirstHediffOfDef(HediffDefOf.Aphrodisiac_Pheromone); + Hediff hediff = pawn.health.hediffSet.GetFirstHediffOfDef(HediffDefOf.rjw_genes_aphrodisiac_pheromone); if (hediff != null) { @@ -56,7 +56,7 @@ namespace RJW_Genes } else { - Hediff aphrodisiac = HediffMaker.MakeHediff(HediffDefOf.Aphrodisiac_Pheromone, pawn); + Hediff aphrodisiac = HediffMaker.MakeHediff(HediffDefOf.rjw_genes_aphrodisiac_pheromone, pawn); foreach (StatModifier stat in aphrodisiac.CurStage.statFactors) { if (stat.stat.defName == "SexFrequency") diff --git a/Source/HediffDefOf.cs b/Source/HediffDefOf.cs index c6581f8..4d59a41 100644 --- a/Source/HediffDefOf.cs +++ b/Source/HediffDefOf.cs @@ -11,9 +11,10 @@ namespace RJW_Genes [DefOf] public static class HediffDefOf { - public static readonly HediffDef Aphrodisiac_Pheromone; - public static readonly HediffDef Fertilin_Lost; - public static readonly HediffDef Succubus_Drained; + public static readonly HediffDef rjw_genes_aphrodisiac_pheromone; + public static readonly HediffDef rjw_genes_fertilin_lost; + public static readonly HediffDef rjw_genes_succubus_drained; public static readonly HediffDef rjw_genes_orgasm_rush_hediff; + public static readonly HediffDef rjw_genes_fertilin_craving; } } diff --git a/Source/Interactions/GenesPartKindUsageRule.cs b/Source/Interactions/GenesPartKindUsageRule.cs index 5f99d3a..1825550 100644 --- a/Source/Interactions/GenesPartKindUsageRule.cs +++ b/Source/Interactions/GenesPartKindUsageRule.cs @@ -29,8 +29,12 @@ namespace RJW_Genes.Interactions { weight *= 2.5f; } - yield return new Weighted(weight, LewdablePartKind.Mouth); - yield return new Weighted(weight, LewdablePartKind.Beak); + if (pawn.genes.HasGene(GeneDefOf.rjw_genes_cum_eater)) + { + yield return new Weighted(weight, LewdablePartKind.Mouth); + yield return new Weighted(weight, LewdablePartKind.Beak); + } + if (pawn.genes.HasGene(GeneDefOf.rjw_genes_vaginal_absorber)) { yield return new Weighted(weight, LewdablePartKind.Vagina); diff --git a/Source/Rjw-Genes.csproj b/Source/Rjw-Genes.csproj index 70ee3ff..165662b 100644 --- a/Source/Rjw-Genes.csproj +++ b/Source/Rjw-Genes.csproj @@ -128,6 +128,8 @@ + + @@ -151,7 +153,6 @@ - diff --git a/Source/ThoughtDefOf.cs b/Source/ThoughtDefOf.cs index 16694d0..aefcfa8 100644 --- a/Source/ThoughtDefOf.cs +++ b/Source/ThoughtDefOf.cs @@ -12,7 +12,6 @@ namespace RJW_Genes { public static readonly ThoughtDef rjw_genes_cock_eaten; public static readonly ThoughtDef rjw_genes_seduced; - public static readonly ThoughtDef rjw_critical_fertilin; //Others with same names but other defs than in genedefof public static readonly InteractionDef rjw_genes_flirt;