예제 #1
0
        static void Postfix(Thing __instance, float __result, Pawn ingester, float nutritionWanted)
        {
            if (ingester.RaceProps.Humanlike && __result > 0)
            {
                bool isHumanLike = false;

                if (__instance.def != null && __instance.def.IsIngestible)
                {
                    isHumanLike = FoodUtility.IsHumanlikeCorpseOrHumanlikeMeatOrIngredient(__instance);
                }


                if (isHumanLike)
                {
                    var progress = CanibalismProgression.For(ingester);
                    progress.ProgressWithTrait(__result);
                }
            }
        }
예제 #2
0
        static void Postfix(Thing __instance, float __result, Pawn ingester, float nutritionWanted)
        {
            if (__result > 0)
            {
                bool isHumanLike = false;

                if (FoodUtility.IsHumanlikeMeat(__instance.def))
                {
                    isHumanLike = true;
                }
                else
                {
                    CompIngredients compIngredients = __instance.TryGetComp <CompIngredients>();
                    if (compIngredients != null)
                    {
                        foreach (var ing in compIngredients.ingredients)
                        {
                            if (FoodUtility.IsHumanlikeMeat(ing))
                            {
                                isHumanLike = true;
                                break;
                            }
                        }
                    }
                }

                if (isHumanLike && ingester.RaceProps.Humanlike)
                {
                    var progress = CanibalismProgression.For(ingester);
                    if (!progress.Locked)
                    {
                        progress.Add(__result);
                        progress.TryBecomeCannibal();
                    }
                }
            }
        }
예제 #3
0
파일: LoadComp.cs 프로젝트: Aviuz/BadPeople
 static void Postfix()
 {
     CanibalismProgression.Update();
     KinslayerProgression.Update();
 }
예제 #4
0
 static void Postfix(Pawn __instance)
 {
     CanibalismProgression.For(__instance).ExposeData();
     ActionLog.For(__instance).ExposeData();
 }
예제 #5
0
 static void Postfix(Pawn __instance, DestroyMode mode)
 {
     CanibalismProgression.DeleteKey(__instance);
     ActionLog.DeleteKey(__instance);
 }