public static float CalculateNaturalPartsAverageEfficiency(HediffSet diffSet, BodyPartGroupDef bodyPartGroup)
        {
            float num  = 0f;
            int   num2 = 0;
            IEnumerable <BodyPartRecord> enumerable = from x in diffSet.GetNotMissingParts(BodyPartHeight.Undefined, BodyPartDepth.Undefined, null)
                                                      where x.groups.Contains(bodyPartGroup)
                                                      select x;

            foreach (BodyPartRecord part in enumerable)
            {
                if (!diffSet.PartOrAnyAncestorHasDirectlyAddedParts(part))
                {
                    num += PawnCapacityUtility.CalculatePartEfficiency(diffSet, part, false, null);
                }
                num2++;
            }
            float result;

            if (num2 == 0 || num < 0f)
            {
                result = 0f;
            }
            else
            {
                result = num / (float)num2;
            }
            return(result);
        }
Exemple #2
0
        public static float CalculateNaturalPartsAverageEfficiency(HediffSet diffSet, BodyPartGroupDef bodyPartGroup)
        {
            float num  = 0f;
            int   num2 = 0;

            foreach (BodyPartRecord item in from x in diffSet.GetNotMissingParts()
                     where x.groups.Contains(bodyPartGroup)
                     select x)
            {
                if (!diffSet.PartOrAnyAncestorHasDirectlyAddedParts(item))
                {
                    num += CalculatePartEfficiency(diffSet, item);
                }
                num2++;
            }
            if (num2 == 0 || num < 0f)
            {
                return(0f);
            }
            return(num / (float)num2);
        }
        public static float CalculateNaturalPartsAverageEfficiency(HediffSet diffSet, BodyPartGroupDef bodyPartGroup)
        {
            float num  = 0f;
            int   num2 = 0;
            IEnumerable <BodyPartRecord> enumerable = from x in diffSet.GetNotMissingParts(BodyPartHeight.Undefined, BodyPartDepth.Undefined)
                                                      where x.groups.Contains(bodyPartGroup)
                                                      select x;

            foreach (BodyPartRecord item in enumerable)
            {
                if (!diffSet.PartOrAnyAncestorHasDirectlyAddedParts(item))
                {
                    num += PawnCapacityUtility.CalculatePartEfficiency(diffSet, item, false, null);
                }
                num2++;
            }
            if (num2 != 0 && !(num < 0.0))
            {
                return(num / (float)num2);
            }
            return(0f);
        }
Exemple #4
0
 private static IEnumerable <BodyPartRecord> HittablePartsViolence(HediffSet bodyModel)
 {
     return(from x in bodyModel.GetNotMissingParts()
            where x.depth == BodyPartDepth.Outside || (x.depth == BodyPartDepth.Inside && x.def.IsSolid(x, bodyModel.hediffs))
            select x);
 }