-
Notifications
You must be signed in to change notification settings - Fork 520
Consolidation pull request for many minor features #265
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
That message implied something to do with an effect happening to the hero that causes them to feel cold, such as taking cold damage. Change it to "You hear a deep cracking sound" instead.
"This candelabrum has no candles. To attach candles, apply them instead of the candelabrum."
It wasn't obvious enough before that the Candelabrum has seven candle slots. This makes it show it clearly.
Minor change to reduce some annoyance when monsters quaff polymorph or trigger polymorph traps and the player can see it: traps have no messages at all, so the player needs to notice that a monster polymorphed and may need to farlook it to see what it is (for instance, if it becomes a brown H); whereas potions just say "foo suddenly mutates!" which is nice for letting the player know it happened, but has the same need-to-farlook problems. This commit simply enables newcham()'s message printing for when a monster steps on a polymorph trap or drinks a potion (the "suddenly mutates" message is removed.)
Such a scroll doesn't practically remove the curse from anything, so this message is misleading. It still prints the unique message "The scroll disintegrates."
It's useful to get a message as indication you suddenly moved somewhere. For instance, MSGTYPE=stop can be used on this to avoid bumbling in the wrong direction after a spontaneous uncontrolled teleport.
For much the same reason as the horizontal teleport message: various forms of level teleportation produce no message indication at all that you just ended up somewhere else.
Ported from SpliceHack. Continuing in the trend with the last two commits, it's nice to have a message that indicates something you might not immediately notice just by looking at the map display. Note that this does inform you of pursuit when you can't see the monster.
The general idea here came from SpliceHack -- give each alignment a unique effect in what happens to its sacrifices -- but the "puff of smoke" in Splice seemed too small.
This is originally from the variant SliceHack. Rationale: there's still fire being summoned, so it should vaporize some water.
Message is a reference to The Silver Chair. Most of the other races had their own messages already, but gnomes would just default to discussing dungeon exploration, which doesn't make that much sense most of the times when you would be chatting to them in their own mines. The quotation is edited from the source to reflect the dungeon environment, but the sentiment is actually pretty spot-on given the average player's win ratio. Note: this doesn't interfere with the South Park gnome speech added to 3.6 a while ago; that only occurs when hallucinating and this only occurs when not hallucinating.
Inspired by a Dudley's Dungeon strip. No gameplay change, just flavor.
Backported from TNNT. Only affects dumplog pline history, not any other form of pline history. The impetus for this is to avoid dumplogs full of "Unknown command foo." messages which don't provide any value for people reading the file. In many cases, these messages crowd out the actual message history, making it hard to reconstruct what happened.
Triggers when you feel more confident in your skills. This is to address a problem I have heard about several times from newer players: unless you pay close attention to the guidebook, nothing in the game actually indicates that you can level up your abilities and how to do it. Experienced players don't need this message, of course; they can hide it via MSGTYPE if they really hate it, but I additionally added a clause that prevents this message from being displayed more than once per game session. (It didn't seem important enough to make a save field for.)
Rather than just informing the player that saving and reloading might fix the problem, they are now encouraged to report the problem to the value of DEVTEAM_EMAIL. If the sysconf specifies SUPPORT, that is also presented as an option.
From SliceHack. Note that this refers to the description of the physical bottle; it's a substitute for "phial", "carafe", "flask", etc. such as are seen when a potion crashes on someone's head. They don't obscure the randomized appearance or actual potion identity. The SliceHack version evidently went through several revisions; just take the current one.
From SliceHack. Now if you are hallucinating and your god says something, they will bray, moo, squeak, belch, etc. instead of booming or thundering like normal.
It's confusing and served no purpose; a spoiled player knew what it is, an unspoiled player might think it was a hook-hand or something. Now they all show up as grappling hook.
It was sort of silly that the can of grease could rust because it was made of iron. In real life I've usually seen grease stored in plastic cans. With them not being iron anymore, they didn't need to be HI_METAL (which is an overused color for tools anyway), so the color is now bright blue, which no other tool uses.
3b49c34 to
44edd31
Compare
| TOOL("tinning kit", None, 1, 0, 0, 1, 15,100, 30, IRON, HI_METAL), | ||
| TOOL("tin opener", None, 1, 0, 0, 0, 35, 4, 30, IRON, HI_METAL), | ||
| TOOL("can of grease", None, 1, 0, 0, 1, 15, 15, 20, IRON, HI_METAL), | ||
| TOOL("can of grease", None, 1, 0, 0, 1, 15, 15, 20, PLASTIC, CLR_BRIGHT_BLUE), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well, maybe you're not old enough to have seen metallic cans of grease. :-)
https://images.ehive.com/accounts/5386/objects/images/r5l8pe_a36v_m.jpg
They certainly can rust. Plastic are somewhat anachronistic for NetHack but then again, NetHack is in itself anachronistic.
| /* Moloch's high altar */ | ||
| if (u.ualign.record > -99) | ||
| u.ualign.record = -99; | ||
| pline("An invisible choir chants in Latin, and you are bathed in darkness..."); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Where's the fat lady? :-D
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That one was implemented as a YAFM, which I was going to make a separate pull request to collect all of them in. Though, maybe this one should just be used, since it already has some (bitcoins for an ale for instance)
It can get annoying when you accidentally sell something you didn't mean to by hitting space or enter at this prompt.
This feature is originally from SliceHack, but the original code directly edited the monmove code, whereas I thought it was cleaner to use the existing mtrapseen code. Thus, this commit just marks trapdoors as "seen" for all non-mindless monsters generated in the Castle level (the same way all monsters in Sokoban are marked aware of pits and holes). This change prevents these Castle monsters from moving onto trapdoors 97.5% of the time. (A determined player can still patiently sit and wait for everyone in the castle to plunge like lemmings into the trapdoors, but it will now take 40 times as long.) Also unlike SliceHack, this only excludes mindless monsters - not all non-humanoids. There are plenty of intelligent non-humanoid monsters generated right next to the trapdoors, after all. This is aimed at better flavor (the inhabitants of the castle should know about the traps in their own area) and better scenery in the Valley (doesn't seem as much of a valley of the dead if there are hordes of soldiers milling around down there). I considered sticking an in_mklev condition onto this if statement, so that monsters spawned into the Castle after its creation will fall down the trapdoors, but ultimately decided against it.
| pline("%s gives you %s %s%s for an ale.", Monnam(priest), | ||
| (pmoney == 1L) ? "one" : "two", | ||
| Hallucination ? "bitcoin" : "bit", | ||
| (pmoney == 1L) ? "" : "s"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No. Don't drag that clusterfuck into NetHack.
We already have hallucinated currencies, how about:
const char *bits = (Hallucination) ? currency(pmoney) : (pmoney == 1L) ? "bit" : "bits";
pline("%s gives you %s%s for an ale.", Monnam(priest), (pmoney == 1L) ? "one " : "two ", bits);
| E void FDECL(mon_arrive, (struct monst *, BOOLEAN_P)); | ||
| E void FDECL(mon_catchup_elapsed_time, (struct monst *, long)); | ||
| E void FDECL(keepdogs, (BOOLEAN_P)); | ||
| E void FDECL(keepdogs, (BOOLEAN_P, BOOLEAN_P)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like the general idea but not in this form.
As stated in the commit message, there are situations when you
shouldn't be able to notice that monsters followed you.
I also seriously dislike just adding boolean flags to functions (note that the current code sometimes also does that so this is more of a general remark than just criticism of this commit).
One boolean is often okay, but two or more make it unreadable. Either
break it out into different functions or change the booleans to enum
options.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When the booleans are totally independent, the only real options for reducing the number of arguments are to make a clunky enum that enumerates the different cases, or use bitflags, the added complication of which may be worth it for 3+ independent booleans but probably not 2.
| "belches", "ring-a-lings out", "squeaks", "squeals", "screeches", "drones", | ||
| "buzzes", "pipes", "tinkles", "rumbulates", "moos", "brays", "barks", | ||
| "screams", "howls", "ululates", "quacks", "meows", | ||
| }; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd argue that the voice of a god will overwrite your hallucination.
But also that I don't like getting stuff too silly.
This includes most commits from GitHub pull request NetHack#265 with some code adjustement and documentation in doc/fixes37.0.
This includes most commits from GitHub pull request NetHack#265 with some code adjustment and documentation in doc/fixes37.0.
|
All these were incorporated except:
|
|
This pull request has all been committed to NetHack-3.7, except for the following bands: |
|
Closing this old pull request. |
Since there are a lot of these, it seems better to make a single pull request instead of over 20 little ones. The commits in here are more or less independent of one another and self-contained.
All of these are from xNetHack, though some originated in other variants. A lot of them are small enhancements to the interface, mostly via messages.
If I have other small feature commits to submit later on, I plan on adding them to this pull request.