I literally just commented that I wanted something like this in another thread, but it'd be cool if there was some basic (but entirely optional) targeting syntax to specify whether you want to target a denizen or an adventurer, and possibly to more easily specify which denizen without having to use the full number.
My specific suggestion is something akin to: ((number)? denizen-signifier | adventurer-signifier)? target-word (word-end)?
As an alternative to the current system of: target-word (denizen-number)?
Where denizen-signifier defaults to "@ and is the same as per the emote system, adventurer-signifier defaults to $" and is also the same as per emote system (and thus, configurable in the same manner for consistency's sake), word-end defaults to "." and if included will make sure the target doesn't try to expand, and number is the nth denizen/item in the room/your inventory you want to target.
For example, if you're hunting rats with an adventurer named Rathel, "kill rat" might hit your buddy, while "kill rat." or "kill @rat" will definitely hit a rat, and "kill 3@rat" will hit the third rat. Likewise, "kick $rat" will let you kick said buddy if he happens to insult your fashion sense or your choice of bloodlines.
Possible additional suggestion is the ability to mark whether you want to target an object/denizen in your inventory versus in the room (maybe something as simple as, if it finds an "h" or "r" near the number, it targets one in the room, while if it finds "i" it targets one in your inventory). If your specifier can't find anything (eg there are three rats but you try "kill 4@rat") I think it should just fail.
Also, while I use the word "target" and I use particularly violent examples, I'd personally like to see this functionality cover other commands as well, such as item-handling, looking/probing, and maybe even say to commands.
Comments
While you're free to consider this a laziness issue, I personally consider this a UI elegance issue. (If you don't believe this is important, go find out how many people can't even get past Dwarf Fortress's clunky UI, for example!)
As such, if you can think of a more intuitive and elegant implementation than the one I suggested, please do bring it up! I am aware that I have somewhat odd ideas as to what constitutes as an intuitive interface.
Ideally, whatever system gets used should feel natural. That's why I was hoping to make it loosely similar to the system emotes now use.
Considering that you can't really find an adventurer with the same exact name as a denizen or type of Denizen (or should not be able to, anyhow), I don't see a need for a specifier for denizen vs adventurer. And, considering the 'word end' already exists, overall I think this idea is just superfluous.
ETA: Actually, the 'which' identifier sounds kinda nice. 'kill 3rat' to kill the third rat in the room... But, I think the ID is a smarter way to do this personally, simply because 'id' changes less often than 'number in room' changes. You hit rat 1234, it'll be rat 1234 even if rat 456 left the room just beforehand. Kill 3rat, it may not exist if 2rat ran away just before your hit went through, or you may hit the big-ass black rat that was 4rat, since 2rat ran away....
Now, I would like a config as to whether you hit the first or last in a room by default - I'd much rather hit the last one in the room by default, since if something runs away and comes back, it will be the last one in the room. In fact, being not quite on-topic here, I'm half-tempted to make a thread about it.
(The Midnight Crew): Micaelis says, "Lynara coded periods out of his DNA."
(The Midnight Crew): Micaelis says, "Lynara coded periods out of his DNA."
He didn't kill it fast enough and it got away. That's plenty reason to hit someone!