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;
}
}