2021-07-26 04:06:00 +00:00
|
|
|
|
using Milk;
|
2021-07-26 15:19:49 +00:00
|
|
|
|
using rjw;
|
2021-07-26 04:06:00 +00:00
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using Verse;
|
|
|
|
|
|
|
|
|
|
namespace CRIALactation
|
|
|
|
|
{
|
|
|
|
|
public static class LactationUtility
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
public static bool IsLactating(Pawn p)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
return
|
|
|
|
|
p.health.hediffSet.HasHediff(HediffDefOf_Milk.Lactating_Natural, false) ||
|
|
|
|
|
p.health.hediffSet.HasHediff(HediffDefOf_Milk.Lactating_Drug, false) ||
|
|
|
|
|
p.health.hediffSet.HasHediff(HediffDefOf_Milk.Lactating_Permanent, false) ||
|
2021-11-17 21:47:10 +00:00
|
|
|
|
p.health.hediffSet.HasHediff(HediffDefOf_Milk.Heavy_Lactating_Permanent, false);
|
2021-11-17 21:01:36 +00:00
|
|
|
|
|
|
|
|
|
|
2021-07-26 04:06:00 +00:00
|
|
|
|
}
|
2021-07-26 15:19:49 +00:00
|
|
|
|
|
|
|
|
|
public static bool HasMilkableBreasts(Pawn p)
|
|
|
|
|
{
|
2021-08-01 23:17:04 +00:00
|
|
|
|
if (p.TryGetComp<CompMilkableHuman>() == null) return false;
|
|
|
|
|
|
|
|
|
|
if (Genital_Helper.has_breasts(p) && (MilkBase.flatChestGivesMilk || !Genital_Helper.has_male_breasts(p)))
|
2021-07-26 15:19:49 +00:00
|
|
|
|
{
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void StartLactating(Pawn p, bool natural)
|
|
|
|
|
{
|
2021-11-15 22:58:49 +00:00
|
|
|
|
Hediff lactating = HediffMaker.MakeHediff(HediffDefOf_Milk.Lactating_Natural, p, null);
|
2021-07-26 15:19:49 +00:00
|
|
|
|
lactating.Severity = Rand.Value;
|
|
|
|
|
p.health.AddHediff(lactating, Genital_Helper.get_breastsBPR(p));
|
|
|
|
|
}
|
2021-07-30 01:33:08 +00:00
|
|
|
|
|
2021-08-02 18:55:46 +00:00
|
|
|
|
public static void StopBeingHucow(Pawn p)
|
|
|
|
|
{
|
|
|
|
|
p.health.RemoveHediff(p.health.hediffSet.GetFirstHediffOfDef(HediffDefOf_Milk.Hucow, false));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static bool IsHucow(Pawn p)
|
|
|
|
|
{
|
|
|
|
|
return p.health.hediffSet.HasHediff(HediffDefOf_Milk.Hucow);
|
|
|
|
|
}
|
|
|
|
|
|
2021-07-30 01:33:08 +00:00
|
|
|
|
public static bool isMassageable(Pawn p)
|
|
|
|
|
{
|
|
|
|
|
CompInduceLactation c = p.TryGetComp<CompInduceLactation>();
|
|
|
|
|
if (c != null && c.isActive && c.CanMassage)
|
|
|
|
|
{
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
|
|
}
|
2021-08-02 18:55:46 +00:00
|
|
|
|
|
|
|
|
|
public static void ExtendLactationDuration(Pawn p)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
var drugLact = p.health.hediffSet.GetFirstHediffOfDef(HediffDefOf_Milk.Lactating_Drug);
|
|
|
|
|
if(drugLact != null)
|
|
|
|
|
{
|
2021-11-18 04:15:49 +00:00
|
|
|
|
drugLact.TryGetComp<HediffComp_Disappears>().ticksToDisappear = 1800000;
|
2021-08-02 18:55:46 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var naturalLact = p.health.hediffSet.GetFirstHediffOfDef(HediffDefOf_Milk.Lactating_Natural);
|
|
|
|
|
if (naturalLact != null)
|
|
|
|
|
{
|
2021-11-18 04:15:49 +00:00
|
|
|
|
naturalLact.TryGetComp<HediffComp_Disappears>().ticksToDisappear = 1800000;
|
2021-08-02 18:55:46 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
2021-07-26 04:06:00 +00:00
|
|
|
|
}
|
|
|
|
|
}
|