コード例 #1
0
        private void RemoveMySpouseMarriageRelatedThoughts()
        {
            Pawn spouse = this.pawn.GetSpouse();

            if (spouse != null && !spouse.Dead && spouse.needs.mood != null)
            {
                MemoryThoughtHandler memories = spouse.needs.mood.thoughts.memories;
                memories.RemoveMemoriesOfDef(ThoughtDefOf.GotMarried);
                memories.RemoveMemoriesOfDef(ThoughtDefOf.HoneymoonPhase);
            }
        }
コード例 #2
0
 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);
                 }
             }
         }
     }
 }
コード例 #3
0
 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);
                 }
             }
         }
     }
 }
コード例 #4
0
 public ThoughtHandler(Pawn pawn)
 {
     this.pawn   = pawn;
     memories    = new MemoryThoughtHandler(pawn);
     situational = new SituationalThoughtHandler(pawn);
 }