mirror of
https://gitgud.io/lutepickle/rjw_menstruation.git
synced 2024-08-14 22:46:52 +00:00
40 lines
1.8 KiB
C#
40 lines
1.8 KiB
C#
using rjw;
|
|
using rjw.Modules.Interactions.Contexts;
|
|
using rjw.Modules.Interactions.Enums;
|
|
using rjw.Modules.Interactions.Rules.PartKindUsageRules;
|
|
using rjw.Modules.Shared;
|
|
using System.Collections.Generic;
|
|
using Verse;
|
|
|
|
namespace RJW_Menstruation.Interactions
|
|
{
|
|
public class EstrusPartKindUsageRule : IPartPreferenceRule
|
|
{
|
|
private const float visible_estrus_multiplier = Multipliers.Doubled;
|
|
private const float concealed_estrus_multiplier = 1.1f;
|
|
|
|
private bool WillingAndAble(Pawn fucker, Pawn fucked, bool visible)
|
|
{
|
|
return
|
|
fucked.IsInEstrus(visible)
|
|
&&
|
|
PregnancyHelper.CanImpregnate(fucker, fucked);
|
|
}
|
|
|
|
public IEnumerable<Weighted<LewdablePartKind>> ModifiersForDominant(InteractionContext context)
|
|
{
|
|
if (WillingAndAble(context.Internals.Submissive.Pawn, context.Internals.Dominant.Pawn, true))
|
|
yield return new Weighted<LewdablePartKind>(visible_estrus_multiplier, LewdablePartKind.Vagina);
|
|
else if (WillingAndAble(context.Internals.Submissive.Pawn, context.Internals.Dominant.Pawn, false))
|
|
yield return new Weighted<LewdablePartKind>(concealed_estrus_multiplier, LewdablePartKind.Vagina);
|
|
}
|
|
|
|
public IEnumerable<Weighted<LewdablePartKind>> ModifiersForSubmissive(InteractionContext context)
|
|
{
|
|
if (WillingAndAble(context.Internals.Dominant.Pawn, context.Internals.Submissive.Pawn, true))
|
|
yield return new Weighted<LewdablePartKind>(visible_estrus_multiplier, LewdablePartKind.Vagina);
|
|
else if (WillingAndAble(context.Internals.Dominant.Pawn, context.Internals.Submissive.Pawn, false))
|
|
yield return new Weighted<LewdablePartKind>(concealed_estrus_multiplier, LewdablePartKind.Vagina);
|
|
}
|
|
}
|
|
}
|