Пример #1
0
        public static List <CoverInfo> CalculateCoverGiverSet(IntVec3 targetLoc, IntVec3 shooterLoc, Map map)
        {
            List <CoverInfo> list = new List <CoverInfo>();

            for (int i = 0; i < 8; i++)
            {
                IntVec3   intVec = targetLoc + GenAdj.AdjacentCells[i];
                CoverInfo item   = default(CoverInfo);
                if (intVec.InBounds(map) && CoverUtility.TryFindAdjustedCoverInCell(shooterLoc, targetLoc, intVec, map, out item))
                {
                    list.Add(item);
                }
            }
            return(list);
        }
Пример #2
0
        public static float CalculateOverallBlockChance(IntVec3 targetLoc, IntVec3 shooterLoc, Map map)
        {
            float num = 0f;

            for (int i = 0; i < 8; i++)
            {
                IntVec3   intVec    = targetLoc + GenAdj.AdjacentCells[i];
                CoverInfo coverInfo = default(CoverInfo);
                if (intVec.InBounds(map) && CoverUtility.TryFindAdjustedCoverInCell(shooterLoc, targetLoc, intVec, map, out coverInfo))
                {
                    num = (float)(num + (1.0 - num) * coverInfo.BlockChance);
                }
            }
            return(num);
        }
Пример #3
0
        public static float CalculateOverallBlockChance(LocalTargetInfo target, IntVec3 shooterLoc, Map map)
        {
            IntVec3 cell = target.Cell;
            float   num  = 0f;

            for (int i = 0; i < 8; i++)
            {
                IntVec3 intVec = cell + GenAdj.AdjacentCells[i];
                if (intVec.InBounds(map))
                {
                    CoverInfo coverInfo;
                    if (CoverUtility.TryFindAdjustedCoverInCell(shooterLoc, target, intVec, map, out coverInfo))
                    {
                        num += (1f - num) * coverInfo.BlockChance;
                    }
                }
            }
            return(num);
        }
Пример #4
0
        public static List <CoverInfo> CalculateCoverGiverSet(LocalTargetInfo target, IntVec3 shooterLoc, Map map)
        {
            IntVec3          cell = target.Cell;
            List <CoverInfo> list = new List <CoverInfo>();

            for (int i = 0; i < 8; i++)
            {
                IntVec3 intVec = cell + GenAdj.AdjacentCells[i];
                if (intVec.InBounds(map))
                {
                    CoverInfo item;
                    if (CoverUtility.TryFindAdjustedCoverInCell(shooterLoc, target, intVec, map, out item) && item.BlockChance > 0f)
                    {
                        list.Add(item);
                    }
                }
            }
            return(list);
        }