{
/* Apply special damage XXX XXX XXX */
tdam = tot_dam_aux_shot(q_ptr, tdam, m_ptr);
- tdam = critical_shot(q_ptr->weight, q_ptr->to_h, tdam);
+ tdam = critical_shot(q_ptr->weight, q_ptr->to_h, j_ptr->to_h, tdam);
/* No negative damage */
if (tdam < 0) tdam = 0;
else
{
/* STICK TO */
- if (object_is_fixed_artifact(q_ptr))
+ if (object_is_fixed_artifact(q_ptr) &&
+ (p_ptr->pclass != CLASS_SNIPER || p_ptr->concent == 0))
{
char m_name[80];
tdam = damroll(dd, ds);
/* Apply special damage XXX XXX XXX */
tdam = tot_dam_aux(q_ptr, tdam, m_ptr, 0, TRUE);
- tdam = critical_shot(q_ptr->weight, q_ptr->to_h, tdam);
+ tdam = critical_shot(q_ptr->weight, q_ptr->to_h, 0, tdam);
if (q_ptr->to_d > 0)
tdam += q_ptr->to_d;
else