Deflect Code

        /* intercepts/deflects -- stop moving puck/change dir randomly */

        if (me->p_desspeed < SHOTSPEED/SHOOTABLE_FACTOR)
            me->p_desspeed = 0;
        else {                  /* deflections */
          if ((enemy_buf->e_dist < DEFLECT_DIST) &&
              (angdist(enemy_buf->e_course, me->p_dir) < 64) &&
              (shotby != enemy_buf->e_info) )
          {
            messAll(me->p_no,roboname,"    Deflected by %s (%2s)!",
                    enemy_buf->pstruct->p_name,
                    enemy_buf->pstruct->p_mapchars);

            /* Deflect in any direction. */
            me->p_desdir = me->p_desdir + random() % 256;
            me->p_dir = me->p_desdir;
            shotby = enemy_buf->e_info;
          }
        }