t = object_desc_chr(t, 'x');
t = object_desc_num(t, power);
t = object_desc_chr(t, p2);
-
+
+ int fire_rate = calc_num_fire(o_ptr);
+ /* Show Fire rate */
+ if (fire_rate != 0 && power > 0 && known)
+ {
+ fire_rate = bow_energy(o_ptr->sval) / fire_rate;
+
+ t = object_desc_chr(t, ' ');
+ t = object_desc_chr(t, p1);
+ t = object_desc_num(t, fire_rate/100);
+ t = object_desc_chr(t, '.');
+ t = object_desc_num(t, fire_rate%100);
+ t = object_desc_str(t, "turn");
+ t = object_desc_chr(t, p2);
+ }
+
/* All done */
break;
}
/* Get extra damage from concentration */
if (p_ptr->concent) avgdam = boost_concentration_damage(avgdam);
-
+
if (avgdam < 0) avgdam = 0;
- /* Display (shot damage/ avg damage) */
+ /* Display (shot damage/ shot damage with critical/ avg damage with critical) */
t = object_desc_chr(t, ' ');
t = object_desc_chr(t, p1);
+
+ if(show_ammo_no_crit)
+ {
+ /* Damage with no-crit */
+ t = object_desc_num(t, avgdam);
+ t = object_desc_str(t, show_ammo_detail ? "/shot " : "/");
+ }
+
+ /* Apply Expect damage of Critical */
+ avgdam = calc_expect_crit_shot(o_ptr->weight, o_ptr->to_h, bow_ptr->to_h, avgdam);
t = object_desc_num(t, avgdam);
- t = object_desc_chr(t, '/');
-
+
+ t = show_ammo_no_crit ? object_desc_str(t, show_ammo_detail ? "/crit " : "/")
+ : object_desc_str(t, show_ammo_detail ? "/shot " : "/");
+
if (p_ptr->num_fire == 0)
{
t = object_desc_chr(t, '0');
avgdam *= (p_ptr->num_fire * 100);
avgdam /= energy_fire;
t = object_desc_num(t, avgdam);
+ t = object_desc_str(t, show_ammo_detail ? "/turn" : "");
}
t = object_desc_chr(t, p2);