mirror of
https://gitgud.io/amevarashi/rjw-sexperience-ideology.git
synced 2026-06-18 19:25:59 +00:00
75 lines
2.1 KiB
C#
75 lines
2.1 KiB
C#
using HarmonyLib;
|
|
using RimWorld;
|
|
using rjw;
|
|
using RJWSexperience.Ideology.HistoryEvents;
|
|
using Verse;
|
|
|
|
namespace RJWSexperience.Ideology.Patches
|
|
{
|
|
[HarmonyPatch(typeof(ThinkNode_ChancePerHour_Bestiality), "MtbHours")]
|
|
public static class RJW_Patch_ThinkNode_ChancePerHour_Bestiality
|
|
{
|
|
public static void Postfix(Pawn pawn, ref float __result)
|
|
{
|
|
if (__result < 0f || pawn.Ideo == null) // ideo is null if don't have dlc
|
|
return;
|
|
|
|
if (!RsiDefOf.HistoryEvent.RSI_SexWithAnimal.CreateEvent(pawn).DoerWillingToDo())
|
|
{
|
|
__result = -2f;
|
|
return;
|
|
}
|
|
__result *= IdeoUtility.GetPreceptsMtbMultiplier(pawn.Ideo, x => x.bestialityMtbMult);
|
|
}
|
|
}
|
|
|
|
[HarmonyPatch(typeof(ThinkNode_ChancePerHour_RapeCP), "MtbHours")]
|
|
public static class RJW_Patch_ThinkNode_ChancePerHour_RapeCP
|
|
{
|
|
public static void Postfix(Pawn pawn, ref float __result)
|
|
{
|
|
if (__result < 0f || pawn.Ideo == null) // ideo is null if don't have dlc
|
|
return;
|
|
|
|
if (!RsiDefOf.HistoryEvent.RSI_Raped.CreateEvent(pawn).DoerWillingToDo())
|
|
{
|
|
__result = -2f;
|
|
return;
|
|
}
|
|
__result *= IdeoUtility.GetPreceptsMtbMultiplier(pawn.Ideo, x => x.rapeCpMtbMult);
|
|
}
|
|
}
|
|
[HarmonyPatch(typeof(ThinkNode_ChancePerHour_Necro), "MtbHours")]
|
|
public static class RJW_Patch_ThinkNode_ChancePerHour_Necro
|
|
{
|
|
public static void Postfix(Pawn pawn, ref float __result)
|
|
{
|
|
if (__result < 0f || pawn.Ideo == null) // ideo is null if don't have dlc
|
|
return;
|
|
|
|
if (!RsiDefOf.HistoryEvent.RSI_SexWithCorpse.CreateEvent(pawn).DoerWillingToDo())
|
|
{
|
|
__result = -2f;
|
|
return;
|
|
}
|
|
__result *= IdeoUtility.GetPreceptsMtbMultiplier(pawn.Ideo, x => x.necroMtbMult);
|
|
}
|
|
}
|
|
|
|
[HarmonyPatch(typeof(ThinkNode_ChancePerHour_Fappin), "MtbHours")]
|
|
public static class RJW_Patch_ThinkNode_ChancePerHour_Fappin
|
|
{
|
|
public static void Postfix(Pawn p, ref float __result)
|
|
{
|
|
if (__result < 0f || p.Ideo == null) // ideo is null if don't have dlc
|
|
return;
|
|
|
|
if (!RsiDefOf.HistoryEvent.RSI_Masturbated.CreateEvent(p).DoerWillingToDo())
|
|
{
|
|
__result = -2f;
|
|
return;
|
|
}
|
|
__result *= IdeoUtility.GetPreceptsMtbMultiplier(p.Ideo, x => x.fapMtbMult);
|
|
}
|
|
}
|
|
}
|