Wednesday, February 20, 2013

"You got me blacklisted from Hop Sing's?"

"She named name!"

Before I go into naming monsters using the call command, I'd like to see descriptions of items remain in the inventory even after the item is identified.  "Snow boots of speed" is more informative than "boots of speed", and "silver ring of teleportation" is more informative than "ring of teleportation".  You can get the descriptions of identified items in-game anyway, so why not just stick that info in the inventory so we don't always have to look things up?

Moving on, I'd like to be able to name minions that your God grants you when you are sacrificing for an artifact.  I'm not sure why the decision was made to disallow naming of certain monsters.  Try naming that deva of whatziquotal to see what I'm talking about.  The inability to name names shopkeepers makes sense to some degree.  I'm sure there are people out there who thing that even attempting to name Izchak should result in instadeath (now that I think of it, this is not a bad idea).

As it turns out, you can indeed name minions (and priests for that matter) with the call command.  However, line 632 makes a call to the priestname function which will generate the minion's name based on alignment, etc, regardless of what you've called it.  So the name you call your minion exists in the computer's memory in the minion's permonst struct, but is ignored by the game.  I think simply replacing line 623 with if(mtmp->ispriest) { should do the trick, but I haven't yet tried it out.


Here's my proposal.  You can name any monster.  If you attempt to name an otherwise unnameable (i.e., unique) monster, it appends your name to their name.  Say, for example, you steal a magic lamp from Izchak and anger him.  You may end up back in Minetown much later in the game, so you might want to name Izchak "mad".  His name would then show up as Izchak mad or something along those lines, so you know to be careful on that level.  I suppose one could engrave on the staircases to a level where a shopkeeper is mad at you, so I may just end up restricting this to minions only.

Whatever I decide upon (reader suggestions encouraged!), there would be one exception, however.  Under no circumstances will you be able to name One-eyed Sam.   The reason is that when a shop is created, the shopkeeper will be given a name chosen randomly from a list of strings depending on the type of shop (lighting, books, general, etc).  I haven't quite figured out why, but someone decided that the game should randomly choose one shopkeeper name out of thirty-three for Sam, where all thirty-three names are One-eyed Sam, and in honor of whatever drug(s) that dev was taking at the time, I will keep it that way:



Even better, when the time comes to "randomly" select One-eyed Sam's name, the list is completely ignored, and his name is hard-coded instead:



Brilliant!

1 comment:

  1. "thirty-three names are One-eyed Sam" - that is to keep name_wanted happy.

    And double hardcoding was later added to keep Sam female.

    In my variant I get rid of BLACKMARKET ifdef in nameshk what removes double harcoding wtf and allows Sam to be either male or female ( https://github.com/Bulwersator/UnNetHackPlus/commit/d84bea34c8ff14dd844bb67041544c32cc5e0415 ).

    ReplyDelete