diff --git a/Common/Assemblies/Rjw-Genes.dll b/Common/Assemblies/Rjw-Genes.dll index 2485a6c..f3261ce 100644 Binary files a/Common/Assemblies/Rjw-Genes.dll and b/Common/Assemblies/Rjw-Genes.dll differ diff --git a/Common/Defs/AbilityDefs/Ability_Seduce.xml b/Common/Defs/AbilityDefs/Ability_Seduce.xml index d4467e6..fab4475 100644 --- a/Common/Defs/AbilityDefs/Ability_Seduce.xml +++ b/Common/Defs/AbilityDefs/Ability_Seduce.xml @@ -40,4 +40,43 @@ + + + rjw_genes_ability_InitiateLovin + + Seduce the target to approach the caster. + Genes/Icons/seduce + True + true + true + 30000 + false + + 10 + + Mote_CoagulateStencil + Coagulate + Coagulate_Cast + + Verb_CastAbility + 10 + 1 + + false + false + false + false + true + + + +
  • + RJW_Genes.CompAbilityEffect_Seduce + Caster +
  • +
  • + Heart +
  • +
    +
    \ No newline at end of file diff --git a/Common/Patches/Genes/Patch_Highmates.xml b/Common/Patches/Genes/Patch_Highmates.xml new file mode 100644 index 0000000..d239fc0 --- /dev/null +++ b/Common/Patches/Genes/Patch_Highmates.xml @@ -0,0 +1,29 @@ + + + + +
  • Vanilla Races Expanded - Highmate
  • +
    + + +
  • + /Defs/GeneDef[defName="VRE_Libido_VeryHigh"]/abilities + + +
  • rjw_genes_ability_InitiateLovin
  • + + + +
  • + /Defs/GeneDef[defName="VRE_Libido_VeryHigh"]/descriptionHyperlinks + + + rjw_genes_ability_InitiateLovin + + +
  • +
    +
    +
    +
    + diff --git a/Source/Common/patches/PatchPregnancyHelper.cs b/Source/Common/patches/PatchPregnancyHelper.cs index 6bf4230..aadf2c5 100644 --- a/Source/Common/patches/PatchPregnancyHelper.cs +++ b/Source/Common/patches/PatchPregnancyHelper.cs @@ -20,6 +20,7 @@ namespace RJW_BGS [HarmonyPatch("impregnate")] private static void ImpregnatePostfix(ref SexProps props) { + if (RJWSettings.DevMode) rjw.ModLog.Message("Rimjobworld::impregnate(" + props.sexType + "):: " + xxx.get_pawnname(props.pawn) + " + " + xxx.get_pawnname(props.partner) + ":"); //"mech" pregnancy @@ -33,7 +34,10 @@ namespace RJW_BGS List pawnparts = giver.GetGenitalsList(); List partnerparts = receiver.GetGenitalsList(); var interaction = rjw.Modules.Interactions.Helpers.InteractionHelper.GetWithExtension(props.dictionaryKey); - + if (receiver.genes == null) + { + return; + } if (!(props.sexType == xxx.rjwSextype.Anal && receiver.genes.HasActiveGene(RJW_Genes.GeneDefOf.rjw_genes_fertile_anus))) return; diff --git a/Source/GeneDefOf.cs b/Source/GeneDefOf.cs index 74fce14..4280cd7 100644 --- a/Source/GeneDefOf.cs +++ b/Source/GeneDefOf.cs @@ -119,6 +119,7 @@ namespace RJW_Genes [MayRequire("resplice.xotr.charmweavers")] public static GeneDef RS_LoveFeed = DefDatabase.GetNamed("RS_LoveFeed", false); [MayRequire("resplice.xotr.charmweavers")] public static GeneDef RS_MultiPregnancy = DefDatabase.GetNamed("RS_MultiPregnancy", false); [MayRequire("redmattis.bigsmall.core")] public static GeneDef VU_VampireLover = DefDatabase.GetNamed("VU_VampireLover", false); + [MayRequire("vanillaracesexpanded.highmate")] public static GeneDef VRE_LovinDependency = DefDatabase.GetNamed("VRE_LovinDependency", false); diff --git a/Source/Genes/Patches/LustFeeding.cs b/Source/Genes/Patches/LustFeeding.cs index 389aa63..e227d2a 100644 --- a/Source/Genes/Patches/LustFeeding.cs +++ b/Source/Genes/Patches/LustFeeding.cs @@ -13,6 +13,8 @@ namespace RJWLoveFeeding //[HarmonyPostfix] static Def LoveFeed = DefDatabase.GetNamed("RS_LoveFeed", false); static Def VampireLover = DefDatabase.GetNamed("VU_VampireLover", false); + static Def LovinDependency = DefDatabase.GetNamed("VRE_LovinDependency", false); + static NeedDef VRE_Lovin = DefDatabase.GetNamed("VRE_Lovin", false); public static void Postfix(SexProps props) { try @@ -32,7 +34,10 @@ namespace RJWLoveFeeding //ModLog.Message($" Patch Worked"); if(!props.pawn.IsCaravanMember() && !props.partner.IsCaravanMember()) { - RJWTryTakeBlood(props.pawn, props.partner); + FillNeed(props.pawn); + FillNeed(props.partner); + + RJWTryTakeBlood(props.pawn, props.partner); RJWTryTakeBlood(props.partner, props.pawn); } @@ -40,8 +45,30 @@ namespace RJWLoveFeeding } + public static void FillNeed(Pawn pawn) + { + Pawn_GeneTracker genes; + if (LovinDependency != null) + { + genes = pawn.genes; - public static bool RJWTryTakeBlood(Pawn pawn, Pawn bloodBag) + if (genes == null) + { + return; + } + if (pawn.genes.HasActiveGene(RJW_Genes.GeneDefOf.VRE_LovinDependency)) + { + if (VRE_Lovin != null) + { + Pawn_NeedsTracker needs = pawn.needs; + ((needs != null) ? needs.TryGetNeed(VRE_Lovin) : null).CurLevel = 1f; + } + } + } + } + + + public static bool RJWTryTakeBlood(Pawn pawn, Pawn bloodBag) {