もともとあったto-hitへのマイナスと同じ式を使って o_ptr->to_d += 2+randint1(4); とした。
また指輪とアミュの価値判定のコードを修正、to_h + to_d + pval の合計がマイナス
のときだけ無価値と判定するようにした。
case TV_AMULET:
{
/* Hack -- negative bonuses are bad */
- if (o_ptr->to_a < 0) return (0L);
- if (o_ptr->to_h < 0) return (0L);
- if (o_ptr->to_d < 0) return (0L);
+ if (o_ptr->to_h + o_ptr->to_d + o_ptr->to_a < 0) return (0L);
/* Give credit for bonuses */
value += ((o_ptr->to_h + o_ptr->to_d + o_ptr->to_a) * 200L);
{
o_ptr->name2 = EGO_RING_BERSERKER;
o_ptr->to_h -= 2+randint1(4);
+ o_ptr->to_d += 2+randint1(4);
}
break;
case SV_RING_PROTECTION: