mirror of
https://github.com/vegapnk/RJW-Genes.git
synced 2024-08-15 00:23:31 +00:00
Succubus xenotype & pawnkind, sex preferencees & start incident
Made xenotype and pawnkind, modified part preferences
This commit is contained in:
parent
09157e923d
commit
4a4b436270
13 changed files with 234 additions and 54 deletions
|
@ -10,42 +10,64 @@ using Verse;
|
|||
namespace RJW_Genes.Interactions
|
||||
{
|
||||
//Summary//
|
||||
//Set custom preferences for pawn. Gets integrated to rjw by AddtoIPartPreferenceRule in First
|
||||
//Set custom preferences for pawn. Gets integrated into rjw by AddtoIPartPreferenceRule in First
|
||||
//Depending on the level of lifeforce increase the chance for using the mouth.
|
||||
public class GenesPartKindUsageRule : IPartPreferenceRule
|
||||
{
|
||||
public IEnumerable<Weighted<LewdablePartKind>> ModifiersForDominant(InteractionContext context)
|
||||
{
|
||||
Pawn pawn = context.Internals.Dominant.Pawn;
|
||||
if (GeneUtility.HasCriticalLifeForce(pawn))
|
||||
Gene_LifeForce gene = pawn.genes.GetFirstGeneOfType<Gene_LifeForce>();
|
||||
if (gene != null)
|
||||
{
|
||||
yield return new Weighted<LewdablePartKind>(50f, LewdablePartKind.Mouth);
|
||||
}
|
||||
else if (GeneUtility.HasLowLifeForce(pawn))
|
||||
{
|
||||
yield return new Weighted<LewdablePartKind>(10f, LewdablePartKind.Mouth);
|
||||
}
|
||||
else if (GeneUtility.HasLifeForce(pawn))
|
||||
{
|
||||
yield return new Weighted<LewdablePartKind>(2f, LewdablePartKind.Mouth);
|
||||
float weight = 2f;
|
||||
if (gene.Value < gene.MinLevelForAlert)
|
||||
{
|
||||
weight *= 10;
|
||||
}
|
||||
else if (gene.Value < gene.targetValue)
|
||||
{
|
||||
weight *= 2.5f;
|
||||
}
|
||||
yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Mouth);
|
||||
yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Beak);
|
||||
if (pawn.genes.HasGene(GeneDefOf.rjw_genes_vaginal_absorber))
|
||||
{
|
||||
yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Vagina);
|
||||
}
|
||||
if (pawn.genes.HasGene(GeneDefOf.rjw_genes_anal_absorber))
|
||||
{
|
||||
yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Anus);
|
||||
}
|
||||
}
|
||||
yield break;
|
||||
}
|
||||
|
||||
public IEnumerable<Weighted<LewdablePartKind>> ModifiersForSubmissive(InteractionContext context)
|
||||
{
|
||||
Pawn pawn = context.Internals.Submissive.Pawn;
|
||||
if (GeneUtility.HasCriticalLifeForce(pawn))
|
||||
Pawn pawn = context.Internals.Dominant.Pawn;
|
||||
Gene_LifeForce gene = pawn.genes.GetFirstGeneOfType<Gene_LifeForce>();
|
||||
if (gene != null)
|
||||
{
|
||||
yield return new Weighted<LewdablePartKind>(50f, LewdablePartKind.Mouth);
|
||||
}
|
||||
else if (GeneUtility.HasLowLifeForce(pawn))
|
||||
{
|
||||
yield return new Weighted<LewdablePartKind>(10f, LewdablePartKind.Mouth);
|
||||
}
|
||||
else if (GeneUtility.HasLifeForce(pawn))
|
||||
{
|
||||
yield return new Weighted<LewdablePartKind>(2f, LewdablePartKind.Mouth);
|
||||
float weight = 2f;
|
||||
if (gene.Value < gene.MinLevelForAlert)
|
||||
{
|
||||
weight *= 10;
|
||||
}
|
||||
else if (gene.Value < gene.targetValue)
|
||||
{
|
||||
weight *= 2.5f;
|
||||
}
|
||||
yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Mouth);
|
||||
yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Beak);
|
||||
if (pawn.genes.HasGene(GeneDefOf.rjw_genes_vaginal_absorber))
|
||||
{
|
||||
yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Vagina);
|
||||
}
|
||||
if (pawn.genes.HasGene(GeneDefOf.rjw_genes_anal_absorber))
|
||||
{
|
||||
yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Anus);
|
||||
}
|
||||
}
|
||||
yield break;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue