public bool TryDoRandomMoodCausedMentalBreak() { if (!CanDoRandomMentalBreaks || pawn.Downed || !pawn.Awake() || pawn.InMentalState) { return(false); } if (pawn.Faction != Faction.OfPlayer && CurrentDesiredMoodBreakIntensity != MentalBreakIntensity.Extreme) { return(false); } if (QuestUtility.AnyQuestDisablesRandomMoodCausedMentalBreaksFor(pawn)) { return(false); } if (!CurrentPossibleMoodBreaks.TryRandomElementByWeight((MentalBreakDef d) => d.Worker.CommonalityFor(pawn, moodCaused: true), out MentalBreakDef result)) { return(false); } Thought thought = RandomFinalStraw(); TaggedString taggedString = "MentalStateReason_Mood".Translate(); if (thought != null) { taggedString += "\n\n" + "FinalStraw".Translate(thought.LabelCap); } return(result.Worker.TryStart(pawn, taggedString, causedByMood: true)); }