- int k;
-
- /* Percentile dice */
- k = randint0(100);
-
- /* Hack -- Instant miss or hit */
- if (k < 10) return (k < 5);
-
- if (p_ptr->pseikaku == SEIKAKU_NAMAKE)
- if (one_in_(20)) return (FALSE);
-
- /* Wimpy attack never hits */
- if (chance <= 0) return (FALSE);
+ if (!visible) chance = (chance + 1) / 2;
+ return hit_chance(chance, ac) >= randint1(100);
+}