Beispiel #1
0
        //checks whether item is blocking seeker from seeing hider
        public bool IsBlocking(Seeker seeker, Hider hider)
        {
            bool rv = false;

            foreach(PrimitiveShape p in getCageShapes())
            {
                foreach (Vector3 v in hider.getPartsPositions())
                {
                    rv = rv || p.isBlockingLineOfSight(seeker.getEyesPosition(), v);
                }
            }
            return rv;
        }
Beispiel #2
0
 //returns whether or not seeker can see hider
 public static float CanSee(Hider hider, Vector3 pos)
 {
     List<Vector3> locs = hider.getPartsPositions();
     float res = 0.5f;
     float frac = 0.5f / locs.Count;
     //for each body part in hider
     foreach (Vector3 loc in locs)
         //for each item in world
         for (int j = 0; j < World.getWorld().numOfItems; j++)
         {
             //if seeker can't see hider
             if (!World.getWorld().items[j].IsBlocking(pos, loc))
             {
                 res += frac;
             }
         }
     return res;
 }