Esempio n. 1
0
 public static void CanGetThoughtPostfix(ThoughtDef def, SituationalThoughtHandler __instance, ref bool __result)
 {
     if (__result)
     {
         try
         {
             Need_Soul soul;
             if (HarmonyPatches.HasSoulTraitNullyfyingTraits(def, __instance.pawn, out soul))
             {
                 __result = false;
                 return;
             }
             ThoughtDefCorruption Tdef = def as ThoughtDefCorruption;
             if (Tdef != null)
             {
                 if (IsAutomaton(__instance.pawn))
                 {
                     if (Tdef.IsAutomatonThought)
                     {
                         return;
                     }
                     else
                     {
                         __result = false;
                         return;
                     }
                 }
                 if (!Tdef.requiredSoulTraits.NullOrEmpty())
                 {
                     for (int i = 0; i < soul.SoulTraits.Count; i++)
                     {
                         if (!Tdef.requiredSoulTraits.Contains(soul.SoulTraits[i].SDef))
                         {
                             __result = false;
                         }
                     }
                 }
             }
         }
         finally
         {
             ProfilerThreadCheck.EndSample();
         }
     }
 }