The message "Energy drains from your pack" is very easy to overlook in a realtime variant where new messages constantly flow in during combat, and often, you'll only notice it when you're trying to use the staff and failing.
Code: Select all
/* Allow disenchant resist to block charge draining */
if (!p_ptr->resist_disen)
{
/* Find an item */
for (k = 0; k < 10; k++)
{
/* Pick an item */
i = rand_int(INVEN_PACK);
/* Obtain the item */
o_ptr = &p_ptr->inventory[i];
/* Drain charged wands/staffs */
if (((o_ptr->tval == TV_STAFF) ||
(o_ptr->tval == TV_WAND)) &&
(o_ptr->pval))
{
/* Message */
msg_print(Ind, "Energy drains from your pack!");
/* Obvious */
obvious = TRUE;
/* Heal */
j = rlev;
m_ptr->hp += j * o_ptr->pval * o_ptr->number;
if (m_ptr->hp > m_ptr->maxhp) m_ptr->hp = m_ptr->maxhp;
/* Redraw (later) if needed */
update_health(m_idx);
/* Uncharge */
o_ptr->pval = 0;
/* Combine / Reorder the pack */
p_ptr->notice |= (PN_COMBINE | PN_REORDER);
/* Window stuff */
p_ptr->window |= (PW_INVEN | PW_EQUIP);
/* Done */
break;
}
}
Yes, my coding knowledge Is atrocious, and I copied the disenchant clause from the previous entry(unbonus) and tried to apply it to unpower too.
Just... make it so I no longer die for reasons I won't be aware of until it's too late, please.