Exemplo n.º 1
0
        public static Pawn UsablePackAnimalWithTheMostFreeSpace(Pawn pawn)
        {
            IEnumerable <Pawn> enumerable = GiveToPackAnimalUtility.CarrierCandidatesFor(pawn);
            Pawn  pawn2 = null;
            float num   = 0f;

            foreach (Pawn pawn3 in enumerable)
            {
                if (pawn3.RaceProps.packAnimal && pawn3 != pawn && pawn.CanReach(pawn3, PathEndMode.Touch, Danger.Deadly, false, TraverseMode.ByPawn))
                {
                    float num2 = MassUtility.FreeSpace(pawn3);
                    if (pawn2 == null || num2 > num)
                    {
                        pawn2 = pawn3;
                        num   = num2;
                    }
                }
            }
            return(pawn2);
        }
Exemplo n.º 2
0
        public static Pawn UsablePackAnimalWithTheMostFreeSpace(Pawn pawn)
        {
            IEnumerable <Pawn> enumerable = CarrierCandidatesFor(pawn);
            Pawn  pawn2 = null;
            float num   = 0f;

            foreach (Pawn item in enumerable)
            {
                if (item.RaceProps.packAnimal && item != pawn && pawn.CanReach(item, PathEndMode.Touch, Danger.Deadly))
                {
                    float num2 = MassUtility.FreeSpace(item);
                    if (pawn2 == null || num2 > num)
                    {
                        pawn2 = item;
                        num   = num2;
                    }
                }
            }
            return(pawn2);
        }
Exemplo n.º 3
0
        public static Pawn PackAnimalWithTheMostFreeSpace(Map map, Faction faction)
        {
            List <Pawn> list = map.mapPawns.SpawnedPawnsInFaction(faction);
            Pawn        pawn = null;
            float       num  = 0f;

            for (int i = 0; i < list.Count; i++)
            {
                if (list[i].RaceProps.packAnimal)
                {
                    float num2 = MassUtility.FreeSpace(list[i]);
                    if (pawn == null || num2 > num)
                    {
                        pawn = list[i];
                        num  = num2;
                    }
                }
            }
            return(pawn);
        }
Exemplo n.º 4
0
 public static int CountToPickUpUntilOverEncumbered(Pawn pawn, Thing thing)
 {
     return(Mathf.FloorToInt(MassUtility.FreeSpace(pawn) / thing.GetStatValue(StatDefOf.Mass, true)));
 }
Exemplo n.º 5
0
 public static bool WillBeOverEncumberedAfterPickingUp(Pawn pawn, Thing thing, int count)
 {
     return(MassUtility.FreeSpace(pawn) < (float)count * thing.GetStatValue(StatDefOf.Mass, true));
 }