disallow assigning type name to Amulet of Yendor
Something I noticed when testing the item-action handling for name and call; applies to the C/#name command too. You were allowed to call the real Amulet something and allowed to call fake ones something [else]. If you did that, xname/doname didn't show it but the discoveries list did, giving away information when the player had access to more than one unID'd Amulet of Yendor. Rather than messing about with discovery handling, make real and fake Amulet be ineligible from being given a type name. (They can still be given individual names.)
This commit is contained in:
@@ -1834,6 +1834,13 @@ silly_thing(const char *word,
|
||||
!(is_plural(otmp) || pair_of(otmp)) ? "that" : "those", s3);
|
||||
else
|
||||
#endif
|
||||
/* see comment about Amulet of Yendor in objtyp_is_callable(do_name.c);
|
||||
known fakes yield the silly thing feedback */
|
||||
if (!strcmp(word, "call")
|
||||
&& (otmp->otyp == AMULET_OF_YENDOR
|
||||
|| (otmp->otyp == FAKE_AMULET_OF_YENDOR && !otmp->known)))
|
||||
pline_The("Amulet doesn't like being called names.");
|
||||
else
|
||||
pline(silly_thing_to, word);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user