50 lines
1.7 KiB
C#
50 lines
1.7 KiB
C#
|
using HarmonyLib;
|
|||
|
using RimWorld;
|
|||
|
using Verse;
|
|||
|
|
|||
|
namespace RJW_Menstruation
|
|||
|
{
|
|||
|
[HarmonyPatch(typeof(Hediff_Pregnant), "Miscarry")]
|
|||
|
public class Miscarry_Patch
|
|||
|
{
|
|||
|
public static void Postfix(Hediff_Pregnant __instance)
|
|||
|
{
|
|||
|
HediffComp_Menstruation comp = __instance.GetMenstruationCompFromPregnancy();
|
|||
|
if (comp == null) return;
|
|||
|
comp.Pregnancy = null;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
[HarmonyPatch(typeof(Hediff_Pregnant), nameof(Hediff_Pregnant.StartLabor))]
|
|||
|
public class StartLabor_Patch
|
|||
|
{
|
|||
|
public static void Postfix(Hediff_Pregnant __instance)
|
|||
|
{
|
|||
|
HediffComp_Menstruation comp = __instance.GetMenstruationCompFromPregnancy();
|
|||
|
if (comp == null) return;
|
|||
|
comp.Pregnancy = __instance.pawn.health.hediffSet.GetFirstHediffOfDef(HediffDefOf.PregnancyLabor);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
[HarmonyPatch(typeof(Hediff_Labor), nameof(Hediff_Labor.PreRemoved))]
|
|||
|
public class Labor_PreRemoved_Patch
|
|||
|
{
|
|||
|
public static void PostFix(Hediff_Labor __instance)
|
|||
|
{
|
|||
|
HediffComp_Menstruation comp = __instance.GetMenstruationCompFromPregnancy();
|
|||
|
if (comp == null) return;
|
|||
|
comp.Pregnancy = __instance.pawn.health.hediffSet.GetFirstHediffOfDef(HediffDefOf.PregnancyLaborPushing);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
[HarmonyPatch(typeof(Hediff_LaborPushing), nameof(Hediff_LaborPushing.PreRemoved))]
|
|||
|
public class LaborPushing_PreRemoved_Patch
|
|||
|
{
|
|||
|
public static void PostFix(Hediff_LaborPushing __instance)
|
|||
|
{
|
|||
|
HediffComp_Menstruation comp = __instance.GetMenstruationCompFromPregnancy();
|
|||
|
if (comp == null) return;
|
|||
|
comp.Pregnancy = null;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|