Sitelet https://github.com/NetHack/NetHack/issues/1498
Skip to content

Warrior roles know mundane helmets and gloves but not shields #1498

Description

@Tomsod

Just a minor inconsistency - when the new magical small shields were added, the old mundane kind was specifically coded as not pre-identified to knights and other combat-focused roles:

NetHack/src/u_init.c

Lines 606 to 610 in 45b01cd

/* not flagged as magic but shouldn't be pre-discovered
(small shields look the same as two types of magical shield;
cornuthaum / dunce cap look the same as each other) */
if (ct == CORNUTHAUM || ct == DUNCE_CAP || ct == SMALL_SHIELD)
continue;

But this is contrary to how it already works with other kinds of armor where magical and mundane types look similar, namely (plain) helmets and leather gloves, which each share randomized appearances with three magical variants. Warrior roles start knowing these, giving them a minute advantage in identifying magical armor (by exclusion), although by Minetown most runs have the opportunity to price-ID them either way.

The new small shield family is a bit different, as there's no "gotcha" type that shouldn't be wear-tested (and also they just have the same appearance and tile instead of a random pool), so the advantage there would be even smaller. As such, if you're committed to removing it, logically helmets and leather gloves should follow. Although I don't really see why having that knowledge is so bad.

As a side-note: the code quoted above has the two conical hats as the other exceptions; that part is from 2021 and is rather mystifying since AFAIK neither of the two were ever non-magical, so they wouldn't be pre-identified anyway.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions