Opened 13 years ago

Closed 12 years ago

#605 closed bug (fixed (in master))

r907: weapons should pick up brands from rings

Reported by: takkaria Owned by:
Milestone: 3.1.0 Keywords:


Change History (5)

comment:1 Changed 12 years ago by mikon

What if both rings have brands? I seem to remember Un only takes the right one into account, ever.

comment:2 Changed 12 years ago by mikon

I've checked. In Un it's:

/* Handle normal weapon/gauntlets/boots */
if (o_ptr->k_idx)
k = damroll(o_ptr->dd, o_ptr->ds) ;

/* Hack -- get brands/slays from artifact/ego item/magic item type */

if ((o_ptr->name1)
(o_ptr->name2) (o_ptr->xtra1) (o_ptr->ident & (IDENT_FORGED)))

k = tot_dam_aux(o_ptr, k, m_ptr, FALSE) ;
/* Hack -- use gauntlet brand if wielding a normal weapon */
else if (inventory[INVEN_HANDS].k_idx)
k = tot_dam_aux(&inventory[INVEN_HANDS], k, m_ptr, FALSE) ;
/* Hack -- use ring brands if not wielding gloves */
else if ((inventory[INVEN_RIGHT].k_idx) && (slot == INVEN_WIELD))
k = tot_dam_aux(&inventory[INVEN_RIGHT], k, m_ptr, FALSE) ;
/* Hack -- use ring brands if not wielding gloves */
else if ((inventory[INVEN_LEFT].k_idx) && (slot == INVEN_ARM))
k = tot_dam_aux(&inventory[INVEN_LEFT], k, m_ptr, FALSE) ;

but perhaps it would be better to sum left and right ring slays? Also, perhaps add slays even to egos and artifacts, not only to average weapons? I'm not sure about the second one, because the feature was meant to improve average weapons, mainly. Hmmm.

Anyway, after it's decided, I think I'd change things for Un, to stay close to V...

comment:3 Changed 12 years ago by anonymous

Maybe work around that by having the brands act like weapons with multiple slays, ie. have only the strongest brand that affects the attack add damage.

comment:4 Changed 12 years ago by andrewdoull

It's the right hand ring for melee attacks, and the left hand ring for missile weapons IIRC.

comment:5 Changed 12 years ago by takkaria

  • Resolution set to fixed
  • Status changed from new to closed

in [0a7d8c3] (SVN r1079). The game just uses the highest multiplier from all rings. This isn't an issue in V, because rings atm only have single brands.

Note: See TracTickets for help on using tickets.