Fix cum eating for futas

This commit is contained in:
amevarashi 2022-02-26 13:03:42 +05:00
parent 54a778b146
commit ffa00b7464
1 changed files with 32 additions and 19 deletions

View File

@ -5,6 +5,7 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using HarmonyLib; using HarmonyLib;
using rjw; using rjw;
using rjw.Modules.Interactions.Enums;
using RimWorld; using RimWorld;
using Verse; using Verse;
using Verse.AI; using Verse.AI;
@ -100,30 +101,42 @@ namespace RJWSexperience
{ {
public static void Postfix(SexProps props) public static void Postfix(SexProps props)
{ {
Pawn pawn = props.pawn; TryFeedCum(props);
Pawn partner = props.partner; }
xxx.rjwSextype sextype = props.sexType;
Pawn giver = null;
Pawn receiver = null;
if (Genital_Helper.has_penis_fertile(pawn)) private static void TryFeedCum(SexProps props)
{
if (!Genital_Helper.has_penis_fertile(props.pawn))
return;
if (!PawnsPenisIsInPartnersMouth(props))
return;
props.partner.AteCum(props.pawn.GetCumVolume(), true);
}
private static bool PawnsPenisIsInPartnersMouth(SexProps props)
{
var interaction = rjw.Modules.Interactions.Helpers.InteractionHelper.GetWithExtension(props.dictionaryKey);
if (props.pawn == props.interactionInitiator)
{ {
giver = pawn; if (!interaction.DominantHasTag(GenitalTag.CanPenetrate) && !interaction.DominantHasFamily(GenitalFamily.Penis))
receiver = partner; return false;
var requirement = interaction.SelectorExtension.submissiveRequirement;
if (!requirement.mouth && !requirement.beak && !requirement.mouthORbeak)
return false;
} }
else if (Genital_Helper.has_penis_fertile(partner)) else
{ {
giver = partner; if (!interaction.SubmissiveHasTag(GenitalTag.CanPenetrate) && !interaction.SubmissiveHasFamily(GenitalFamily.Penis))
receiver = pawn; return false;
} var requirement = interaction.SelectorExtension.dominantRequirement;
if (!requirement.mouth && !requirement.beak && !requirement.mouthORbeak)
if (receiver != null && ( return false;
sextype == xxx.rjwSextype.Oral ||
sextype == xxx.rjwSextype.Fellatio ||
sextype == xxx.rjwSextype.Sixtynine))
{
receiver.AteCum(giver.GetCumVolume(), true);
} }
return true;
} }
} }