private static void Postfix(SkillRecord __instance, Pawn ___pawn, ref bool __result) { if (!__result && PsyUtils.TryGetPsyTrait(___pawn, out PsyTraitDef traitDef) && traitDef.conflictingSkills.Contains(__instance.def)) { __result = true; } }
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; } }