+ register struct thing *tp = NULL;
+ register int liking;
+ register int dx, dy;
+
+ for (dx = -1; dx <= 1; ++dx)
+ {
+ for (dy = -1; dy <= 1; ++dy)
+ {
+ register struct linked_list *mob;
+ if ((mob = find_mons(hero.y + dy, hero.x + dx)))
+ {
+ register struct thing *atp = (struct thing *)ldata(mob);
+ if (!tp || atp->t_stats.s_int > tp->t_stats.s_int)
+ tp = atp;
+ }
+ }
+ }
+
+
+ if (tp == NULL)
+ {
+ msg("You wrap your arms around yourself.");
+ return;
+ }
+ else if (tp->t_stats.s_int < INTERESTED)
+ {
+ if (tp->t_stats.s_int > 0)
+ tp->t_stats.s_int /= 2;
+ else
+ tp->t_stats.s_int--;
+ msg("The %s dodges out of the way.", killname(tp->t_type));
+ return;
+ }
+
+ if (amulet)
+ {
+ total_winner(tp->t_type);
+ }
+ else
+ {
+ mostly_winner(tp->t_type);
+ }