public static void Postfix(MentalBreakWorker __instance, ref bool __result, Pawn pawn) { if (__result == true && pawn.GetComp <CompMeeseeksMemory>() != null && !__instance.def.defName.StartsWith("CM_Meeseeks_Box_MentalBreak_Meeseeks")) { __result = false; } }
private static void CheckDefRestrictions([NotNull] Pawn pawn, [NotNull] MentalBreakWorker __instance, ref bool __result) { if (__result) { __result = __instance.def.IsValidFor(pawn); } }
private static void Postfix(MentalBreakWorker __instance, ref float __result, Pawn pawn) { if (PsyUtils.TryGetPsyTrait(pawn, out PsyTraitDef traitDef)) { if (__result > 0f && traitDef.allowedMentalBreaks.Count > 0 && !traitDef.allowedMentalBreaks.Contains(__instance.def)) { __result = 0f; } } else if (__instance.def.mentalState == PsyDefOf.PN_Compulsion) { __result = 0f; } }