diff --git a/Common/Assemblies/Rjw-Genes.dll b/Common/Assemblies/Rjw-Genes.dll
index efb3423..5e50e3c 100644
Binary files a/Common/Assemblies/Rjw-Genes.dll and b/Common/Assemblies/Rjw-Genes.dll differ
diff --git a/Common/Defs/Genes/GeneDefs_Cosmetic.xml b/Common/Defs/Genes/GeneDefs_Cosmetic.xml
index 47057a0..01e1f5d 100644
--- a/Common/Defs/Genes/GeneDefs_Cosmetic.xml
+++ b/Common/Defs/Genes/GeneDefs_Cosmetic.xml
@@ -31,7 +31,7 @@
- Succubus_Tail
+ rjw_genes_succubus_tail
Carriers of this gene grow a slender tail ending with a heart that can act as a dexterous fifth limb.
Genes/Icons/Succubus_Tail
diff --git a/Common/Defs/Genes/GeneDefs_LifeForce.xml b/Common/Defs/Genes/GeneDefs_LifeForce.xml
index dbaa10b..db2de4d 100644
--- a/Common/Defs/Genes/GeneDefs_LifeForce.xml
+++ b/Common/Defs/Genes/GeneDefs_LifeForce.xml
@@ -29,7 +29,7 @@
rjw_genes_lifeforce_randomrape
18
- 0.02
+ 0.05
1
1
@@ -70,7 +70,6 @@
2
rjw_genes_fertilin
1
- -1
@@ -82,6 +81,5 @@
3
rjw_genes_fertilin
1
- -1
\ No newline at end of file
diff --git a/Common/Defs/InteractionDef/Rape/Rape_SuccubusTail.xml b/Common/Defs/InteractionDef/Rape/Rape_SuccubusTail.xml
new file mode 100644
index 0000000..be8905c
--- /dev/null
+++ b/Common/Defs/InteractionDef/Rape/Rape_SuccubusTail.xml
@@ -0,0 +1,153 @@
+
+
+
+
+ Rape_SuccubusTail_Tailjob
+
+
+
+ r_logentry->Was given tailjob by [RECIPIENT_nameDef].
+
+
+
+
+ r_logentry->Gave tailjob to [INITIATOR_nameDef].
+
+
+
+
+ Tailjob
+ Handjob
+
+ DomSuccubusTail_Tailjob_RP
+
+
+
+ SubSuccubusTailCustomRequirementHandler
+
+ Rape
+
+
+
+ CanPenetrate
+
+
+
+
+
+
+
+
+
+
+ Rape_SuccubusTail_Vaginal
+
+
+
+ r_logentry->Gave vaginal tailsex to [RECIPIENT_nameDef].
+
+
+
+
+ r_logentry->Was given vaginal tailsex by [INITIATOR_nameDef].
+
+
+
+
+ Vaginal Tailsex
+ Vaginal
+
+ DomSuccubusTail_Vaginal_RP
+
+
+
+ DomSuccubusTailCustomRequirementHandler
+
+ Rape
+
+
+
+
+
+ Vagina
+
+
+
+
+
+
+
+ Rape_SuccubusTail_Anal
+
+
+
+ r_logentry->Gave anal tailsex to [RECIPIENT_nameDef].
+
+
+
+
+ r_logentry->Was given anal tailsex by [INITIATOR_nameDef].
+
+
+
+
+ Anal Tailsex
+ Anal
+
+ DomSuccubusTail_Anal_RP
+
+
+
+ DomSuccubusTailCustomRequirementHandler
+
+ Rape
+
+
+
+
+
+ Anus
+
+
+
+
+
+
+
+
+ Rape_SuccubusTail_Envelop
+
+
+
+ r_logentry->Was given special tailjob by [RECIPIENT_nameDef].
+
+
+
+
+ r_logentry->Gave special tailjob to [INITIATOR_nameDef].
+
+
+
+
+ Envelop
+ Vaginal
+
+ DomSuccubusTail_Envelop_RP
+
+
+
+ SubSuccubusTailCustomRequirementHandler
+
+ Rape
+
+
+
+ CanPenetrate
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Common/Defs/InteractionDef/Rape/Reverse/Rape_Reverse_SuccubusTail.xml b/Common/Defs/InteractionDef/Rape/Reverse/Rape_Reverse_SuccubusTail.xml
new file mode 100644
index 0000000..ce679d6
--- /dev/null
+++ b/Common/Defs/InteractionDef/Rape/Reverse/Rape_Reverse_SuccubusTail.xml
@@ -0,0 +1,159 @@
+
+
+
+
+ Rape_SuccubusTail_Reverse_Tailjob
+
+
+
+ r_logentry->Gave tailjob to [RECIPIENT_nameDef].
+
+
+
+
+ r_logentry->Was given tailjob by [INITIATOR_nameDef].
+
+
+
+
+ Tailjob
+ Handjob
+
+ SubSuccubusTail_Tailjob_RP
+
+
+
+ DomSuccubusTailCustomRequirementHandler
+
+ Reverse
+ Rape
+
+
+
+
+
+
+ CanPenetrate
+
+
+
+
+
+
+
+ Rape_SuccubusTail_Reverse_Vaginal
+
+
+
+ r_logentry->Was given vaginal tailsex by [RECIPIENT_nameDef].
+
+
+
+
+ r_logentry->Gave vaginal tailsex to [INITIATOR_nameDef].
+
+
+
+
+ Vaginal Tailsex
+ Vaginal
+
+ DomSuccubusTail_Vaginal_RP
+
+
+
+ SubSuccubusTailCustomRequirementHandler
+
+ Reverse
+ Rape
+
+
+
+ Vagina
+
+
+
+
+
+
+
+
+
+
+ Rape_SuccubusTail_Reverse_Anal
+
+
+
+ r_logentry->Was given anal tailsex by [RECIPIENT_nameDef].
+
+
+
+
+ r_logentry->Gave anal tailsex to [INITIATOR_nameDef].
+
+
+
+
+ Anal Tailsex
+ Anal
+
+ DomSuccubusTail_Anal_RP
+
+
+
+ SubSuccubusTailCustomRequirementHandler
+
+ Reverse
+ Rape
+
+
+
+ Anus
+
+
+
+
+
+
+
+
+
+
+
+ Rape_SuccubusTail_Reverse_Envelop
+
+
+
+ r_logentry->Gave special tailjob to [RECIPIENT_nameDef].
+
+
+
+
+ r_logentry->Was given special tailjob by [INITIATOR_nameDef].
+
+
+
+
+ Envelop
+ Vaginal
+
+ DomSuccubusTail_Envelop_RP
+
+
+
+ DomSuccubusTailCustomRequirementHandler
+
+ Reverse
+ Rape
+
+
+
+
+
+ CanPenetrate
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Common/Defs/InteractionDef/Sex/Reverse/Sex_Reverse_SuccubusTail.xml b/Common/Defs/InteractionDef/Sex/Reverse/Sex_Reverse_SuccubusTail.xml
new file mode 100644
index 0000000..a6e98c5
--- /dev/null
+++ b/Common/Defs/InteractionDef/Sex/Reverse/Sex_Reverse_SuccubusTail.xml
@@ -0,0 +1,159 @@
+
+
+
+
+ Sex_SuccubusTail_Reverse_Tailjob
+
+
+
+ r_logentry->Gave tailjob to [RECIPIENT_nameDef].
+
+
+
+
+ r_logentry->Was given tailjob by [INITIATOR_nameDef].
+
+
+
+
+ Tailjob
+ Handjob
+
+ SubSuccubusTail_Tailjob_RP
+
+
+
+ DomSuccubusTailCustomRequirementHandler
+
+ Reverse
+ Consensual
+
+
+
+
+
+
+ CanPenetrate
+
+
+
+
+
+
+
+ Sex_SuccubusTail_Reverse_Vaginal
+
+
+
+ r_logentry->Was given vaginal tailsex by [RECIPIENT_nameDef].
+
+
+
+
+ r_logentry->Gave vaginal tailsex to [INITIATOR_nameDef].
+
+
+
+
+ Vaginal Tailsex
+ Vaginal
+
+ DomSuccubusTail_Vaginal_RP
+
+
+
+ SubSuccubusTailCustomRequirementHandler
+
+ Reverse
+ Consensual
+
+
+
+ Vagina
+
+
+
+
+
+
+
+
+
+
+ Sex_SuccubusTail_Reverse_Anal
+
+
+
+ r_logentry->Was given anal tailsex by [RECIPIENT_nameDef].
+
+
+
+
+ r_logentry->Gave anal tailsex to [INITIATOR_nameDef].
+
+
+
+
+ Anal Tailsex
+ Anal
+
+ DomSuccubusTail_Anal_RP
+
+
+
+ SubSuccubusTailCustomRequirementHandler
+
+ Reverse
+ Consensual
+
+
+
+ Anus
+
+
+
+
+
+
+
+
+
+
+
+ Sex_SuccubusTail_Reverse_Envelop
+
+
+
+ r_logentry->Gave special tailjob to [RECIPIENT_nameDef].
+
+
+
+
+ r_logentry->Was given special tailjob by [INITIATOR_nameDef].
+
+
+
+
+ Envelop
+ Vaginal
+
+ DomSuccubusTail_Envelop_RP
+
+
+
+ DomSuccubusTailCustomRequirementHandler
+
+ Reverse
+ Consensual
+
+
+
+
+
+ CanPenetrate
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Common/Defs/InteractionDef/Sex/Sex_SuccubusTail.xml b/Common/Defs/InteractionDef/Sex/Sex_SuccubusTail.xml
new file mode 100644
index 0000000..dda1ffe
--- /dev/null
+++ b/Common/Defs/InteractionDef/Sex/Sex_SuccubusTail.xml
@@ -0,0 +1,154 @@
+
+
+
+
+ Sex_SuccubusTail_Tailjob
+
+
+
+ r_logentry->Was given tailjob by [RECIPIENT_nameDef].
+
+
+
+
+
+ r_logentry->Gave tailjob to [INITIATOR_nameDef].
+
+
+
+
+ Tailjob
+ Handjob
+
+ DomSuccubusTail_Tailjob_RP
+
+
+
+ SubSuccubusTailCustomRequirementHandler
+
+ Consensual
+
+
+
+ CanPenetrate
+
+
+
+
+
+
+
+
+
+
+ Sex_SuccubusTail_Vaginal
+
+
+
+ r_logentry->Gave vaginal tailsex to [RECIPIENT_nameDef].
+
+
+
+
+ r_logentry->Was given vaginal tailsex by [INITIATOR_nameDef].
+
+
+
+
+ Vaginal Tailsex
+ Vaginal
+
+ DomSuccubusTail_Vaginal_RP
+
+
+
+ DomSuccubusTailCustomRequirementHandler
+
+ Consensual
+
+
+
+
+
+ Vagina
+
+
+
+
+
+
+
+ Sex_SuccubusTail_Anal
+
+
+
+ r_logentry->Gave anal tailsex to [RECIPIENT_nameDef].
+
+
+
+
+ r_logentry->Was given anal tailsex by [INITIATOR_nameDef].
+
+
+
+
+ Anal Tailsex
+ Anal
+
+ DomSuccubusTail_Anal_RP
+
+
+
+ DomSuccubusTailCustomRequirementHandler
+
+ Consensual
+
+
+
+
+
+ Anus
+
+
+
+
+
+
+
+
+ Sex_SuccubusTail_Envelop
+
+
+
+ r_logentry->Was given special tailjob by [RECIPIENT_nameDef].
+
+
+
+
+ r_logentry->Gave special tailjob to [INITIATOR_nameDef].
+
+
+
+
+ Envelop
+ Vaginal
+
+ DomSuccubusTail_Envelop_RP
+
+
+
+ SubSuccubusTailCustomRequirementHandler
+
+ Consensual
+
+
+
+ CanPenetrate
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Common/Defs/RulePackDefs/Sex/RulePacks_SuccubTail.xml b/Common/Defs/RulePackDefs/Sex/RulePacks_SuccubTail.xml
new file mode 100644
index 0000000..21e75a1
--- /dev/null
+++ b/Common/Defs/RulePackDefs/Sex/RulePacks_SuccubTail.xml
@@ -0,0 +1,77 @@
+
+
+
+
+ DomSuccubusTail_Tailjob_RP
+
+
+ sent-> [INITIATOR_nameDef] gave [RECIPIENT_nameDef] a tailjob.
+
+
+
+
+
+ DomSuccubusTail_Vaginal_RP
+
+
+ sent-> [INITIATOR_nameDef] [INITIATOR_possessive] tail was vaginally inserted into [RECIPIENT_nameDef].
+
+
+
+
+
+ DomSuccubusTail_Anal_RP
+
+
+ sent-> [INITIATOR_nameDef] [INITIATOR_possessive] tail was anally inserted into [RECIPIENT_nameDef].
+
+
+
+
+
+
+ DomSuccubusTail_Envelop_RP
+
+
+ sent-> [RECIPIENT_nameDef] dick was enveloped by [INITIATOR_nameDef] [INITIATOR_possessive] tail.
+
+
+
+
+
+ SubSuccubusTail_Tailjob_RP
+
+
+ sent-> [RECIPIENT_nameDef] gave [INITIATOR_nameDef] a tailjob.
+
+
+
+
+
+ SubSuccubusTail_Vaginal_RP
+
+
+ sent-> [RECIPIENT_nameDef] [RECIPIENT_possessive] tail was vaginally inserted into [INITIATOR_nameDef].
+
+
+
+
+
+ SubSuccubusTail_Anal_RP
+
+
+ sent-> [RECIPIENT_nameDef] [RECIPIENT_possessive] tail was anally inserted into [INITIATOR_nameDef].
+
+
+
+
+
+
+ SubSuccubusTail_Envelop_RP
+
+
+ sent-> [INITIATOR_nameDef] dick was enveloped by [RECIPIENT_nameDef] [RECIPIENT_possessive] tail.
+
+
+
+
\ No newline at end of file
diff --git a/Source/GeneDefOf.cs b/Source/GeneDefOf.cs
index 37446c0..bd8590f 100644
--- a/Source/GeneDefOf.cs
+++ b/Source/GeneDefOf.cs
@@ -77,5 +77,8 @@ 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;
+
+ // Cosmetic
+ public static readonly GeneDef rjw_genes_succubus_tail;
}
}
diff --git a/Source/Genes/Life_Force/JobDriver_CastAbilityAfterSex.cs b/Source/Genes/Life_Force/JobDriver_CastAbilityAfterSex.cs
index 7198890..d604cca 100644
--- a/Source/Genes/Life_Force/JobDriver_CastAbilityAfterSex.cs
+++ b/Source/Genes/Life_Force/JobDriver_CastAbilityAfterSex.cs
@@ -50,7 +50,7 @@ namespace RJW_Genes
if (comp.props is CompProperties_SexInteractionRequirements)
{
CompProperties_SexInteractionRequirements sexpropsreq = comp.props as CompProperties_SexInteractionRequirements;
- this.Sexprops = CompAbility_SexInteractionRequirements.GenerateSexProps(this.pawn, this.Partner, sexpropsreq);
+ this.Sexprops = CustomSexInteraction_Helper.GenerateSexProps(this.pawn, this.Partner, sexpropsreq);
}
}
this.Start();
diff --git a/Source/Genes/Life_Force/Patch_LifeForce.cs b/Source/Genes/Life_Force/Patch_LifeForce.cs
index af4370b..a20317b 100644
--- a/Source/Genes/Life_Force/Patch_LifeForce.cs
+++ b/Source/Genes/Life_Force/Patch_LifeForce.cs
@@ -20,58 +20,144 @@ namespace RJW_Genes
if (props.pawn == null || !props.hasPartner())
return;
+ // Exit if pawn has fertilin themself, it won't give any if it has lifeforce themself.
+ if (GeneUtility.HasLifeForce(props.pawn))
+ {
+ return;
+ }
+
+ //Summary//
+ //We use the positions of the pawn (dom or sub) and based on that which interactions will transfer fertilin
+ //By checking isreceiver we know if the succubus is the dom or the sub and if the situation is reverse we also swap the function we use
+ //
float absorb_factor = 0f;
if (GeneUtility.HasLifeForce(props.partner))
{
- if (props.sexType == xxx.rjwSextype.Oral || props.sexType == xxx.rjwSextype.Fellatio || props.sexType == xxx.rjwSextype.Sixtynine)
+ Pawn succubus = props.partner;
+ if (!props.isRevese)
{
- absorb_factor += 1f;
- //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.partner, GeneDefOf.rjw_genes_vaginal_absorber))
- {
- absorb_factor += 1f;
- }
- else if (props.sexType == xxx.rjwSextype.Anal && GeneUtility.HasGeneNullCheck(props.partner, GeneDefOf.rjw_genes_anal_absorber))
- {
- absorb_factor += 1f;
- }
- else if (props.sexType == xxx.rjwSextype.DoublePenetration)
- {
- if (GeneUtility.HasGeneNullCheck(props.partner, GeneDefOf.rjw_genes_vaginal_absorber))
+ if (props.isReceiver)
{
- absorb_factor += 0.5f;
+ // Scenario Dom Succubus, normal
+ absorb_factor = BaseDom(props, succubus);
}
- if (GeneUtility.HasGeneNullCheck(props.partner, GeneDefOf.rjw_genes_anal_absorber))
+ else
{
- absorb_factor += 0.5f;
+ // Scenario Sub Succubus, normal
+ absorb_factor = BaseSub(props, succubus);
}
}
- if (absorb_factor != 0)
- {
+ else
+ {
+ if (props.isReceiver)
+ {
+ // Scenario Dom Succubus, Reverse
+ absorb_factor = BaseSub(props, succubus);
+ }
+ else
+ {
+ // Scenario Sub Succubus, Reverse
+ absorb_factor = BaseDom(props, succubus);
+ }
+ }
+
+ //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);
}
}
}
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 new_fertelin_lost = HediffMaker.MakeHediff(HediffDefOf.Fertilin_Lost, props.pawn);
props.pawn.health.AddHediff(new_fertelin_lost);
new_fertelin_lost.Severity = multiplier;
}
- else
- {
+ else
+ {
multiplier *= 1 - fertelin_lost.Severity;
fertelin_lost.Severity += multiplier;
-
- }
- gene.Resource.Value += CumUtility.GetTotalFluidAmount(props.partner) / 100 * absorb_factor * multiplier;
+
+ }
+ //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;
+ }
+
+
+ public static float BaseDom(SexProps props, Pawn succubus)
+ {
+ float absorb_factor = 0f;
+ if (props.sexType == xxx.rjwSextype.Sixtynine)
+ {
+ absorb_factor += 1f;
+
+ }
+ else if (props.sexType == xxx.rjwSextype.Vaginal)
+ {
+ //with insertion absorbtion or vaginal cum absorbtion
+ //absorb_factor += 1f;
+ }
+ else if (props.sexType == xxx.rjwSextype.DoublePenetration)
+ {
+ if (GeneUtility.HasGeneNullCheck(succubus, GeneDefOf.rjw_genes_vaginal_absorber))
+ {
+ //with insertion absorbtion?
+ //absorb_factor += 0.5f;
+ }
+ if (GeneUtility.HasGeneNullCheck(succubus, GeneDefOf.rjw_genes_anal_absorber))
+ {
+ //with insertion absorbtion?
+ //absorb_factor += 0.5f;
+ }
+ }
+ else if (props.sexType == xxx.rjwSextype.Scissoring)
+ {
+ //with vaginal cum absorption && vaginal absorbtion
+ //absorb_factor += 1f;
+ }
+ return absorb_factor;
+ }
+
+ 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)
+ {
+ absorb_factor += 1f;
+
+ }
+ else if (props.sexType == xxx.rjwSextype.Vaginal && GeneUtility.HasGeneNullCheck(succubus, GeneDefOf.rjw_genes_vaginal_absorber))
+ {
+ absorb_factor += 1f;
+ }
+ else if (props.sexType == xxx.rjwSextype.Anal && GeneUtility.HasGeneNullCheck(succubus, GeneDefOf.rjw_genes_anal_absorber))
+ {
+ absorb_factor += 1f;
+ }
+ else if (props.sexType == xxx.rjwSextype.DoublePenetration)
+ {
+ if (GeneUtility.HasGeneNullCheck(succubus, GeneDefOf.rjw_genes_vaginal_absorber))
+ {
+ absorb_factor += 0.5f;
+ }
+ if (GeneUtility.HasGeneNullCheck(succubus, GeneDefOf.rjw_genes_anal_absorber))
+ {
+ absorb_factor += 0.5f;
+ }
+ }
+ else if (props.sexType == xxx.rjwSextype.Scissoring || props.sexType == xxx.rjwSextype.Cunnilingus)
+ {
+ //with vaginal cum absorbtion
+ //absorb_factor += 1f;
+ }
+ return absorb_factor;
}
}
}
diff --git a/Source/Interactions/CompAbility_SexInteractionRequirements.cs b/Source/Interactions/CompAbility_SexInteractionRequirements.cs
new file mode 100644
index 0000000..f3b9c26
--- /dev/null
+++ b/Source/Interactions/CompAbility_SexInteractionRequirements.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 CompAbility_SexInteractionRequirements : AbilityComp
+ {
+ public CompProperties_SexInteractionRequirements Props
+ {
+ get
+ {
+ return (CompProperties_SexInteractionRequirements)this.props;
+ }
+ }
+
+
+ }
+}
diff --git a/Source/Genes/Life_Force/CompProperties_SexInteractionRequirements.cs b/Source/Interactions/CompProperties_SexInteractionRequirements.cs
similarity index 100%
rename from Source/Genes/Life_Force/CompProperties_SexInteractionRequirements.cs
rename to Source/Interactions/CompProperties_SexInteractionRequirements.cs
diff --git a/Source/Genes/Life_Force/CompAbility_SexInteractionRequirements.cs b/Source/Interactions/CustomSexInteraction_Helper.cs
similarity index 95%
rename from Source/Genes/Life_Force/CompAbility_SexInteractionRequirements.cs
rename to Source/Interactions/CustomSexInteraction_Helper.cs
index 5e926c5..315ac64 100644
--- a/Source/Genes/Life_Force/CompAbility_SexInteractionRequirements.cs
+++ b/Source/Interactions/CustomSexInteraction_Helper.cs
@@ -13,16 +13,8 @@ using rjw.Modules.Interactions.Implementation;
using rjw.Modules.Interactions.Defs.DefFragment;
namespace RJW_Genes
{
- public class CompAbility_SexInteractionRequirements : AbilityComp
- {
- public CompProperties_SexInteractionRequirements Props
- {
- get
- {
- return (CompProperties_SexInteractionRequirements)this.props;
- }
- }
-
+ public class CustomSexInteraction_Helper
+ {
public static List GenerateInteractionDefList(Pawn pawn, Pawn pawn2, CompProperties_SexInteractionRequirements sexpropsreq)
{
List tags = new List();
diff --git a/Source/Interactions/DomSuccubusTailCustomRequirementHandler.cs b/Source/Interactions/DomSuccubusTailCustomRequirementHandler.cs
new file mode 100644
index 0000000..cfa3ebf
--- /dev/null
+++ b/Source/Interactions/DomSuccubusTailCustomRequirementHandler.cs
@@ -0,0 +1,52 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Verse;
+using RimWorld;
+using rjw.Modules.Interactions;
+using rjw.Modules.Interactions.Internals.Implementation;
+using rjw.Modules.Interactions.Objects;
+using rjw;
+using rjw.Modules.Interactions.Enums;
+
+//Modefied code based of RJW-AI code at https://gitgud.io/Ed86/rjw-ia/-/tree/master/
+namespace RJW_Genes
+{
+ [StaticConstructorOnStartup]
+ public class DomSuccubusTailCustomRequirementHandler : ICustomRequirementHandler
+ {
+ public string HandlerKey
+ {
+ get
+ {
+ return "DomSuccubusTailCustomRequirementHandler";
+ }
+ }
+
+
+ static DomSuccubusTailCustomRequirementHandler()
+ {
+ Register();
+ }
+ public static void Register()
+ {
+ InteractionRequirementService.CustomRequirementHandlers.Add(new DomSuccubusTailCustomRequirementHandler());
+ if (Prefs.DevMode)
+ {
+ Log.Message("DomSuccubusTailCustomRequirementHandler registered: ");
+ }
+ }
+
+ public bool FufillRequirements(InteractionWithExtension interaction, InteractionPawn dominant, InteractionPawn submissive)
+ {
+ if (GeneUtility.HasGeneNullCheck(dominant.Pawn, GeneDefOf.rjw_genes_succubus_tail))
+ {
+ return true;
+ }
+ return false;
+ }
+ //public static readonly StringListDef filter = DefDatabase.GetNamed("DomSuccubusTailFilter");
+ }
+}
diff --git a/Source/Interactions/SubSuccubusTailCustomRequirementHandler - Copy.cs b/Source/Interactions/SubSuccubusTailCustomRequirementHandler - Copy.cs
new file mode 100644
index 0000000..5824aa5
--- /dev/null
+++ b/Source/Interactions/SubSuccubusTailCustomRequirementHandler - Copy.cs
@@ -0,0 +1,52 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Verse;
+using RimWorld;
+using rjw.Modules.Interactions;
+using rjw.Modules.Interactions.Internals.Implementation;
+using rjw.Modules.Interactions.Objects;
+using rjw;
+using rjw.Modules.Interactions.Enums;
+
+//Modefied code based of RJW-AI code at https://gitgud.io/Ed86/rjw-ia/-/tree/master/
+namespace RJW_Genes
+{
+ [StaticConstructorOnStartup]
+ public class SubSuccubusTailCustomRequirementHandler : ICustomRequirementHandler
+ {
+ public string HandlerKey
+ {
+ get
+ {
+ return "SubSuccubusTailCustomRequirementHandler";
+ }
+ }
+
+
+ static SubSuccubusTailCustomRequirementHandler()
+ {
+ Register();
+ }
+ public static void Register()
+ {
+ InteractionRequirementService.CustomRequirementHandlers.Add(new SubSuccubusTailCustomRequirementHandler());
+ if (Prefs.DevMode)
+ {
+ Log.Message("SubSuccubusTailCustomRequirementHandler registered: ");
+ }
+ }
+
+ public bool FufillRequirements(InteractionWithExtension interaction, InteractionPawn dominant, InteractionPawn submissive)
+ {
+ if (GeneUtility.HasGeneNullCheck(submissive.Pawn, GeneDefOf.rjw_genes_succubus_tail))
+ {
+ return true;
+ }
+ return false;
+ }
+ //public static readonly StringListDef filter = DefDatabase.GetNamed("SubSuccubusTailFilter");
+ }
+}
diff --git a/Source/Rjw-Genes.csproj b/Source/Rjw-Genes.csproj
index 5f043ec..1039e64 100644
--- a/Source/Rjw-Genes.csproj
+++ b/Source/Rjw-Genes.csproj
@@ -116,10 +116,10 @@
-
+
-
+
@@ -137,7 +137,10 @@
+
+
+