public static void RemoveLostThoughts(Pawn pawn) { foreach (Pawn item in PawnsFinder.AllMapsWorldAndTemporary_Alive) { if (item.needs != null && item.needs.mood != null && item != pawn) { MemoryThoughtHandler memories = item.needs.mood.thoughts.memories; memories.RemoveMemoriesOfDefWhereOtherPawnIs(ThoughtDefOf.ColonistLost, pawn); memories.RemoveMemoriesOfDefWhereOtherPawnIs(ThoughtDefOf.PawnWithGoodOpinionLost, pawn); memories.RemoveMemoriesOfDefWhereOtherPawnIs(ThoughtDefOf.PawnWithBadOpinionLost, pawn); List <PawnRelationDef> allDefsListForReading = DefDatabase <PawnRelationDef> .AllDefsListForReading; for (int i = 0; i < allDefsListForReading.Count; i++) { ThoughtDef genderSpecificLostThought = allDefsListForReading[i].GetGenderSpecificLostThought(pawn); if (genderSpecificLostThought != null) { memories.RemoveMemoriesOfDefWhereOtherPawnIs(genderSpecificLostThought, pawn); } } } } }
public static void RemoveDiedThoughts(Pawn pawn) { foreach (Pawn pawn2 in PawnsFinder.AllMapsWorldAndTemporary_Alive) { if (pawn2.needs.mood != null && pawn2 != pawn) { MemoryThoughtHandler memories = pawn2.needs.mood.thoughts.memories; memories.RemoveMemoriesOfDefWhereOtherPawnIs(ThoughtDefOf.KnowColonistDied, pawn); memories.RemoveMemoriesOfDefWhereOtherPawnIs(ThoughtDefOf.KnowPrisonerDiedInnocent, pawn); memories.RemoveMemoriesOfDefWhereOtherPawnIs(ThoughtDefOf.PawnWithGoodOpinionDied, pawn); memories.RemoveMemoriesOfDefWhereOtherPawnIs(ThoughtDefOf.PawnWithBadOpinionDied, pawn); List <PawnRelationDef> allDefsListForReading = DefDatabase <PawnRelationDef> .AllDefsListForReading; for (int i = 0; i < allDefsListForReading.Count; i++) { ThoughtDef genderSpecificDiedThought = allDefsListForReading[i].GetGenderSpecificDiedThought(pawn); if (genderSpecificDiedThought != null) { memories.RemoveMemoriesOfDefWhereOtherPawnIs(genderSpecificDiedThought, pawn); } } } } }