-
Notifications
You must be signed in to change notification settings - Fork 522
Enable hero to wash hands in fountains and pools (and sinks!) #1112
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
This started with me thinking it would be cool to be able to dip your hands |
|
I realized that xNetHack actually allowed dipping potions (and only potions) into a sink, so I brought that over in a slightly modified form (added the hand-washing, made sinks cause water damage to non-potion items, and some other minor changes). If the ability to blank scrolls at a sink is too powerful, the water damage effect for non-potion items could be reconsidered. |
|
Incidentally, it was sort of a headache to add that new verbose-aware message, especially since each individual message (not just each type or category of message) has its own bit. I had to make a choice here between rearranging everything in bitfield 3 (which would break the configuration of anyone who actually is using the verbose bitfield options), or making the dodip enum values nonconsecutive with dodip4 ~25 bits away from the other three (which would probably be confusing for anyone trying to configure the verbose bitfield options). The Verbose bitfields introduce choices along those lines (or at least additional work/annoyance) when a developer wants to add a new verbose-aware message, and I suspect that's having a chilling effect where few new messages actually have !verbose variations. I wanted to mention my experience here in case there is a discussion among the devteam about whether it should be reconsidered -- I would probably fall on the side of "yes", especially given the complexity of configuring it means the number of players using it must be low to none. |
eefe860 to
b04cc65
Compare
Dipping hands (with '-') or currently-worn gloves in a fountain or pool will cause the hero to wash her hands, washing away any oil and clearing the Glib intrinsic timeout. This does mean bare hands can be used to fish for fountain effects, without having to pick up a stray arrow and carry it around as a dipping item, but having your hands be the only thing that does not activate those effects felt weird. If that would be too unbalancing this could be scrapped.
This is largely taken from xNetHack with a few minor changes. Dipping a potion into a sink can help with item identification by producing the potionbreathe effect (or a sink-specific effect, for a couple potions). Dipping other items will just run water over them. I also added the capability to wash your hands at a sink.
Also put "Nothing seems to happen." into c_common_strings, since it's used all over several files.
Everything else in c_commmon_strings had this qualifier, but c_vision_clears was just const char *. There doesn't seem to be any reason for that so change it to be consistent with the others.
If hero has slippery hands, include '-' among likely candidates for item to #dip when dipping at a pool, fountain, or sink location. When dipping an item (including hands), have a modest chance for the sink to be destroyed--which turns it into a fountain--each time so that it can't be used to blank scrolls an unlimited number of items. (Pools can already be used for that, but you need to obtain water walking ability or else drop most of your stuff and enter the water; sinks weren't imposing any such requirements or risks.)
Suggestion from entrez: If dipping something in a sink while hands are slippery happens to cause that sink to break, only remind player about still being Glib if the item was '-' or uarmg. Redo one of the fixes entries: dipping a potion into a sink does not dilute it. The potion is used up and gives a hint about what it does so player might discover it.
Fake object used for 'hands' has an address, so checking for a Null pointer won't recognize it.
Dipping hands (with '-') or currently-worn gloves in a fountain or pool
will cause the hero to wash her hands, washing away any oil and clearing
the Glib intrinsic timeout. This does mean bare hands can be used to
fish for fountain effects, without having to pick up a stray arrow and
carry it around as a dipping item, but having your hands be the only
thing that does not activate those effects felt weird. If that would be
too unbalancing this could be scrapped.
With further commits this now also adds a system for #dipping items into
a sink, which can aid in potion identification (much like dropping a
ring into the sink can). This is based on code from xNetHack written by
@copperwater, with additions and amendments. It also means you can wash
your hands in a sink.