示例#1
0
            private static void Postfix(ref bool __result, ref Pawn_HealthTracker __instance, ref Pawn ___pawn, bool forAlert)
            {
                if (__result || forAlert)
                {
                    return;
                }
                var pawn = ___pawn;

                if (pawn.AnimalOrWildMan() && pawn.GetPosture() != PawnPosture.Standing &&
                    __instance.HasHediffsNeedingTend(forAlert) && pawn.IsCaptiveOf(Faction.OfPlayer))
                {
                    __result = true;
                }
            }
        // Token: 0x06000003 RID: 3 RVA: 0x00002188 File Offset: 0x00000388
        public static void HasHediffsNeedingTendByPlayer_Prefix(ref bool __result, Pawn_HealthTracker __instance, bool forAlert = false)
        {
            Pawn value = Traverse.Create(__instance).Field("pawn").GetValue <Pawn>();
            bool flag  = value.kindDef.race.GetStatValueAbstract(WPVehicleStatDefOf.WPVehicle, null) == 1f;

            if (flag)
            {
                __result = false;
            }
            else
            {
                bool flag2 = __instance.HasHediffsNeedingTend(forAlert);
                if (flag2)
                {
                    bool flag3 = value.NonHumanlikeOrWildMan();
                    if (flag3)
                    {
                        bool flag4 = value.Faction == Faction.OfPlayer;
                        if (flag4)
                        {
                            __result = true;
                        }
                        Building_Bed building_Bed = value.CurrentBed();
                        bool         flag5        = building_Bed != null && building_Bed.Faction == Faction.OfPlayer;
                        if (flag5)
                        {
                            __result = true;
                        }
                    }
                    else
                    {
                        bool flag6 = (value.Faction == Faction.OfPlayer && value.HostFaction == null) || value.HostFaction == Faction.OfPlayer;
                        if (flag6)
                        {
                            __result = true;
                        }
                    }
                }
            }
            __result = false;
        }