mirror of
https://gitgud.io/c0ffeeeeeeee/rimworld-animations.git
synced 2024-08-15 00:43:45 +00:00
135 lines
3.8 KiB
C#
135 lines
3.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using RimWorld;
|
|
using rjw.Modules.Interactions.Helpers;
|
|
using rjw.Modules.Interactions.Objects;
|
|
using UnityEngine;
|
|
using Verse;
|
|
using Verse.AI;
|
|
using rjw.Modules.Interactions.Enums;
|
|
|
|
namespace Rimworld_Animations {
|
|
public static class AnimationUtility {
|
|
|
|
|
|
public static bool GenitalCheckForPawn(List<string> requiredGenitals, Pawn pawn, out string failReason)
|
|
{
|
|
|
|
failReason = null;
|
|
if (requiredGenitals != null)
|
|
{
|
|
if (requiredGenitals.Contains("Vagina"))
|
|
{
|
|
|
|
if (!rjw.Genital_Helper.has_vagina(pawn))
|
|
{
|
|
failReason = "missing vagina";
|
|
return false;
|
|
}
|
|
|
|
}
|
|
|
|
if (requiredGenitals.Contains("Penis"))
|
|
{
|
|
|
|
if (!(rjw.Genital_Helper.has_multipenis(pawn) || rjw.Genital_Helper.has_penis_infertile(pawn) || rjw.Genital_Helper.has_penis_fertile(pawn) || rjw.Genital_Helper.has_ovipositorM(pawn) || rjw.Genital_Helper.has_ovipositorF(pawn)))
|
|
{
|
|
failReason = "missing penis";
|
|
return false;
|
|
}
|
|
|
|
}
|
|
|
|
if (requiredGenitals.Contains("Mouth"))
|
|
{
|
|
|
|
if (!rjw.Genital_Helper.has_mouth(pawn))
|
|
{
|
|
failReason = "missing mouth";
|
|
return false;
|
|
}
|
|
|
|
}
|
|
|
|
if (requiredGenitals.Contains("Anus"))
|
|
{
|
|
|
|
if (!rjw.Genital_Helper.has_anus(pawn))
|
|
{
|
|
failReason = "missing anus";
|
|
return false;
|
|
}
|
|
|
|
}
|
|
|
|
if (requiredGenitals.Contains("Breasts"))
|
|
{
|
|
if (!rjw.Genital_Helper.can_do_breastjob(pawn))
|
|
{
|
|
failReason = "missing breasts";
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if (requiredGenitals.Contains("NoVagina"))
|
|
{
|
|
|
|
if (rjw.Genital_Helper.has_vagina(pawn))
|
|
{
|
|
failReason = "has vagina";
|
|
return false;
|
|
}
|
|
|
|
}
|
|
|
|
if (requiredGenitals.Contains("NoPenis"))
|
|
{
|
|
|
|
if ((rjw.Genital_Helper.has_multipenis(pawn) || rjw.Genital_Helper.has_penis_infertile(pawn) || rjw.Genital_Helper.has_penis_fertile(pawn)))
|
|
{
|
|
failReason = "has penis";
|
|
return false;
|
|
}
|
|
|
|
}
|
|
|
|
if (requiredGenitals.Contains("NoMouth"))
|
|
{
|
|
|
|
if (rjw.Genital_Helper.has_mouth(pawn))
|
|
{
|
|
failReason = "has mouth";
|
|
return false;
|
|
}
|
|
|
|
}
|
|
|
|
if (requiredGenitals.Contains("NoAnus"))
|
|
{
|
|
|
|
if (rjw.Genital_Helper.has_anus(pawn))
|
|
{
|
|
failReason = "has anus";
|
|
return false;
|
|
}
|
|
|
|
}
|
|
|
|
if (requiredGenitals.Contains("NoBreasts"))
|
|
{
|
|
if (rjw.Genital_Helper.can_do_breastjob(pawn))
|
|
{
|
|
failReason = "has breasts";
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
|
|
return true;
|
|
|
|
}
|
|
}
|
|
}
|