rjw-genes/Source/Interactions/GenesPartKindUsageRule.cs
Shabakur 1f865320b0 Adding Lifeforce and succubus wings gene
Adds lifeforce gene and functions for gaining lifeforce from oral sex and mental break if lifeforce reaches zero. Also add succubus wings drawn by me
2022-12-27 13:48:38 +01:00

56 lines
1.6 KiB
C#

using System;
using System.Collections.Generic;
using rjw;
using rjw.Modules.Interactions.Contexts;
using rjw.Modules.Interactions.Enums;
using rjw.Modules.Interactions.Rules.PartKindUsageRules;
using rjw.Modules.Shared;
using Verse;
namespace RJW_Genes.Interactions
{
public class GenesPartKindUsageRule : IPartPreferenceRule
{
public IEnumerable<Weighted<LewdablePartKind>> ModifiersForDominant(InteractionContext context)
{
Pawn pawn = context.Internals.Dominant.Pawn;
if (GeneUtility.HasCriticalLifeForce(pawn))
{
Log.Message("Critical");
yield return new Weighted<LewdablePartKind>(50f, LewdablePartKind.Mouth);
}
else if (GeneUtility.HasLowLifeForce(pawn))
{
Log.Message("Low");
yield return new Weighted<LewdablePartKind>(10f, LewdablePartKind.Mouth);
}
else if (GeneUtility.HasLifeForce(pawn))
{
Log.Message("normal");
yield return new Weighted<LewdablePartKind>(2f, LewdablePartKind.Mouth);
}
yield break;
}
public IEnumerable<Weighted<LewdablePartKind>> ModifiersForSubmissive(InteractionContext context)
{
Pawn pawn = context.Internals.Submissive.Pawn;
if (GeneUtility.HasCriticalLifeForce(pawn))
{
Log.Message("Critical");
yield return new Weighted<LewdablePartKind>(50f, LewdablePartKind.Mouth);
}
else if (GeneUtility.HasLowLifeForce(pawn))
{
Log.Message("Low");
yield return new Weighted<LewdablePartKind>(10f, LewdablePartKind.Mouth);
}
else if (GeneUtility.HasLifeForce(pawn))
{
Log.Message("normal");
yield return new Weighted<LewdablePartKind>(2f, LewdablePartKind.Mouth);
}
yield break;
}
}
}