Talk:Scroll of enchant armor

From NetHackWiki
Jump to navigation Jump to search

Rewrite with effects

Have rewritten all of it, and included a complete detailing of effects. I think this format is more useful than the verbose discussion, as when trying to remember what happens if I read a cursed scroll of enchant armor whilst confused and wearing Dragon Scale Mail is easier to look up. (Answer; nothing, you can't remove erode proofing of dragon armor). There is probably a place for a Tips section detailing how people often use the spell, though that is covered in the first few paragraphs. Zaffle 04:28, 9 June 2008 (UTC)

Changes for 3.6.0 - A bug or a feature?

I noticed this yesterday while playing 3.6, and just confirmed it in Wizard mode. I'm not sure if it's the intent of the DevTeam, or a bug. I put this here in case it's a bug.

I was playing as a low-level Wizard last night. Picked up two scrolls with the same name, but that wound up in different inventory letters. OK, I thought, I can live with a cursed identify. I didn't BUC check them, and wound up reading a cursed scroll of enchant armor. My cloak of magic resistance is now cursed and -1. No big, I thought. I'll read the other one to bring it back to +0 and uncurse it. However, while it did go back to +0, the cloak is still cursed. I've also confirmed this with a studded leather armor: cursed scroll curses it, uncursed scroll raises the enchantment but doesn't uncurse it. Blessed scroll will still bless the cursed armor.

Lines 1061-1067 in read.c indicate that reading an uncursed scroll of enchant armor while wearing cursed dragon scales will not only harden the scales into scale mail, but remove the curse. I've also confirmed this behavior in Wizard mode.

——Twonk (talk) 16:51, 12 December 2015 (UTC)

The relevant line for non-dragon armor is at src/read.c in NetHack 3.6.0, line 1085, and the 3.4.3 equivalent is at read.c, line 767. The original code is pretty obtuse, so they may have just been trying to simplify it; whether or not the loss of uncursing is deliberate is unclear, but you're right that it's inconsistent with the scales-to-mail behavior. --Darth l33t (talk) 19:23, 12 December 2015 (UTC)
According to the email from the DevTeam I got over the weekend, this has been fixed:
"This change was unintentional and has now been fixed. Thanks.
"The enchant armor code used to manipulate the armor's blessed and cursed flags directly. When it was changed to go through the blessed()/uncursed()/cursed() functions instead, the uncursing case was accidentally missed."
Checking the bug list, this was given the bug number C360-12. Glad I could be of some help.

——Twonk (talk) 20:56, 14 December 2015 (UTC)