#4391
In the curses interface, allow the user to configure a window that is like permanent inventory view but only shows their equipped items, so that they can quickly see that they are lacking a critical piece of gear.
In the curses interface, allow the user to configure a window that is like permanent inventory view but only shows their equipped items, so that they can quickly see that they are lacking a critical piece of gear.
Change dipping into existing water to a standard multiturn action. If you are on top of water that you can dip into, you are now asked immediately after typing #dip if you want to dip things into it. If you say no, you are prompted for items to dip into each other like normal. If you say yes, you are presented with an inventory selection menu that allows you to select multiple items. Then you dip each of those items once into the water, handled automatically as an occupation. If something interesting happens, like a fountain effect or a monster moves nearby, the occupation is interrupted like normal.
Unspecified how the player should communicate their intention to dip items multiple times. For instance, when diluting potions in a fountain which might dry up, it’s desirable to double-dip all potions one by one in case it dries up part way through, but it’s unclear how the interface should handle this.
The line-editing functionality currently provided by compiling in EDIT_GETLIN should be moved to a boolean option on all platforms it is supported, because about half of all players will not like it whether it is forced on or forced off.
In an effort to reduce the number of low-importance y/n confirmation prompts in the game, make applying a lock pick or key scan the hero’s inventory, the floor underneath them, and 8 surrounding spaces for doors or containers that the tool can be used on. If there is only one such thing, automatically use the tool on that thing without prompting. If there are multiple, either prompt for each one in sequence or offer a menu of things to use the tool on.
This has a problem in that heroes may end up accidentally locking doors they want to go through. The problem may not be that important, since they can just unlock it again. Another suggestion is to make the map symbol for a locked door different from an unlocked one.
In variants with percentage intrinsics, intrinsics granted by one’s role need not be binary. For instance, monks tend to gain a lot of elemental resistances by leveling up, so rather than having those be all-or-nothing cutoffs at fixed levels, spread it out so that they gain a decent percentage of the resistance with each level near the original cutoff.
This would complicate the enlightenment display, since now it would have to disclose something like “You have 76% fire resistance: 45% from corpses and 31% from your priest levels”.
The start-of-game “Shall I pick character’s race, role…” screen is replaced with one that presents a random race/role/alignment/gender combo and asks if you want to play it. Answering yes starts the game, no rolls a new one, and quit brings you to the manual selection screen.
Stairs should show any annotation of the level they lead to. Probably not by default, instead when using the nearlook and/or farlook command.
E.g. “There is a staircase down to level 2 (MUMAK BY THE STAIRS!!) here.”
Add a #notes command, which opens up a blank text editor window where you can type anything you want. The notes are saved along with the game and can be referenced anytime from within it.
To prevent this being a hugely complicated undertaking (basically implementing a text editor in the game, which won’t mesh particularly well with players used to other text editors), one suggestion is to use the shell’s default editor, but then this becomes akin to just using out-of-game notes anyway.
Another suggestion is to implement it using a system similar to autopickup exceptions: the player can add, edit, list, and delete one-line notes, which doesn’t require implementing any text editing capability the game doesn’t already have.
If the showscore option is compiled in, allow the player to see the high score list and where they currently stand relative to the top entries or the entries around their current score.
The $ command lists, in addition to your currently carried gold, any amounts of store credit you currently have at shops you have visited.
When examining a corpse in inventory, you are told whether it is vegetarian/vegan and whether it counts as the same race as you.
Allow the player to configure what warning level a given monster species will show up as. If they’re terrified of floating eyes, allow them to be warned of them as 5s on the map.
This has the disadvantage that the player can manipulate it to get warning of a few limited sets of monsters, giving them extra information about the identity of the monster they cannot yet see. In the worst case, if these values are allowed to change after the start of the game, a player could reassign warning numbers until a particular monster changes to find out what it is.
When you are prompted for a direction to throw a boomerang, you can enter into some view-only mode which will show you the boomerang’s path in a given direction, before committing to throw it in any specific direction.
When you save the game, you can enter a note to yourself which will be repeated to you when the game is restored. This can be useful for remembering your immediate goals or warnings when you don’t know how long it will be before resuming the game.
In the #attributes screen, show the time the game was started. This is useful mainly in tournaments to check to see if you started the game a few seconds too early to be eligible.
While you are in a tended shop, items in your inventory are automatically displayed with their sell price appended to them, so you don’t have to go dropping them to find out what they will sell for.
You should be able to apply menucolors only to parts of a string, so you can have e.g. different colors set for “blessed”, “+1”, and “long sword”, and those colors all render in the appropriate places on the “blessed +1 long sword” in your inventory.
When you are inside a tended shop, that shopkeeper’s sell prices of items in your open inventory are displayed along with the item names.
Make the sparkle animation not necessarily synchronous with its related messages. Instead, when the core game engine calls the sparkle function, it informs the windowport that it should display a sparkle, and then proceeds as normal. The windowport may decide to play them immediately (as is currently enforced) or it may decide to defer playing any sparkles until just before the next time the player is prompted for input.
The primary use case for this is with multi-line windowports such as the curses interface, in which one might be on the Plane of Fire and get several messages like “foo stepped on a fire trap but is unharmed”, each with its own sparkle. Under the current system, the game must wait until each sparkle is finished before printing the next message. This implementation would allow the game to print all the messages at once, and then display all the sparkles one by one, or even simultaneously if it wants to.
Add an option that forces the hero to be rendered even when invisible and unable to see invisible; terminals may not reliably display a distinct cursor that allows the player to tell where they are.
New option ‘spoilers’ or ‘spoiled’. When on, the game is free to enable a bunch of quality-of-life enhancements that spoil various parts of the game, such as auto-identifying wands based on their messages and sorting items into price tiers from price identification. Defaults to off.
When faced with a pickup_burden prompt (“You have a little trouble lifting/removing a foo. Continue?”) deliberately ignore space, forcing the user to enter y, n or q. These prompts commonly come when removing a lot of items from a bag or picking up many items, and the player is spacing through all of them.
Show the number of available skill points in the #enhance menu.
A ‘spoilers’ option that toggles on certain interface features that assume a player is spoiled. Defaults to off. An example of such a feature is FIQHack’s automatic identification of a wand of teleportation when the player makes an engraving vanish with it and has already identified the other wands that do so.
The ability to specific-name objects you can see on the floor. (It is already possible to type-name them.)
Make the game able to bind the arrow keys (and other escape sequences like home/pageup) to commands. These keys send an escape character plus some other characters following it. Since escape is currently a no-op, it would now instead go into “listening mode” for those character sequences, and be able to parse them.
The downside is that it would now be impossible to distinguish this from hitting Escape followed by the other characters sent afterwards.
Extend the warning scale up to level 9 (and possibly down to level 0) to offer more granular information on warning threats. However, provide an option to keep the scale at its old 1-5 for players who want to assign monsters to the 6 through 9 glyphs.
An #alarm command that allows you to set an alarm for X turns in the future or on turn Y, at which point the game will print a reminder for you that requires a –More– by default.
Spellbooks that you have identified but haven’t actually learned display a “(level n)” on them to indicate the spell level.
The “Take out what?” container menu prints how many inventory slots you have available.
Applying a key at a non-door and getting “You see no door there” shouldn’t take a turn. Using the open command at a non-door doesn’t take a turn, so why should keys be any different?
When you read a scroll of web, you are repeatedly given a getpos prompt for where you would like to create a web. The area in which you can create webs is identical to the scroll of stinking cloud in terms of line of sight and radius. Each position you select has a web placed on it (though if will fail if a web can’t be placed there for whatever reason, such as another trap already existing there). If you create a web on a square containing a monster, it is immediately entangled in the web.
The amount of webs you can place is 2 if the scroll is cursed, 6 if it is uncursed, and 10 if it is blessed.
The #conduct screen tells how many items you have polymorphed over the course of your game. This is because it will also show up in dumplogs, and can be used to determine how much polypiling was relied on.
Getpos prompts (when you can move the cursor around for things like jumping or centering a stinking cloud) highlight the path from you to your cursor if that’s a meaningful thing for its use. Meaningful uses include jumping (highlight a straight-line path from you to the destination) or _ travel (highlight the path that you would travel along).
Highlighting could possibly be done by changing the glyph shown, but would probably be better off inverting the foreground and background colors.
In the C call menu, allow \ to be entered as an alias for d, the discoveries list.
The prompt for blessed genocide only accepts single-character strings; specifying a species won’t work. The prompt also says “(type a single character)”.
When you’re helpless for more than 1 turn, the game tells you exactly how many turns you missed.
Allow the numeric prefix to work on the zap command. When zapping with a prefix specified, you will try to zap the wand that many times. (This is for easier wresting).
When riding a non-flying, non-swimming steed, give a warning by making the steed stop and “shy away” before riding into water. Only allow this if you use the m command or the steed has already shied away once. But it’s not very fair or realistic to have the steed instadrown under you.
Save the exact text of wishes made, and add it to either the dumplog or the #conduct list of wishes.
(This now exists in vanilla via livelogging of wishes and #chronicle.)
When viewing skills with #enhance, show the maximum skill caps for all listed skills.
The #attributes screen gives you several time-related pieces of info:
Allow spells to be moved to arbitrary letters in the spell rearranging menu, not just letters starting at ‘a’ up until however many spells the player currently knows. This lets players have their spells on letters they are used to from game to game.
If you happen to get teleported while you are _ traveling and you have teleport control, the cursor is automatically placed on where you wanted to travel to. (It doesn’t automatically teleport you there - you are still able to move the cursor around before doing the teleport.)
Possibly, add an option to toggle this behavior off, though it’s hard to imagine why someone wouldn’t want it.
The spellcasting menu automatically (by default) assigns letters to spells in a fixed order, rather than alphabetically in the order the player learned them. For instance, ordering by school, then by ascending level, then by name. Or even just in objects.c order. This guarantees that unless the player rearranges the menu, they will always have the same letters from game to game.
Allow a count for eating, or else have the character stop once they hit Satiated. (Note that numerous people have pointed out flaws with allowing the player to specify exactly how much they want to eat - for instance, it becomes trivial to stretch out a lizard corpse to every bite it provides).
If you don’t have a default window port set in your config file or the sysconf, you get to choose which to use on startup.
You can set some fixed inventory letters in the config file, so you don’t have to adjust them manually. In its simplest form, this would apply only to starting inventory, and would allow things like a Tourist’s credit card to be guaranteed to be placed on a familiar letter.
The game makes fully clear to the player, in-game, how the skill system works and what the consequences of investing points in a skill means.
You can use whole object classes when using the numeric prefix with the D command, e.g. D 1 ? will drop 1 of each scroll you are carrying.
You can mark certain squares as “ignored” so that when you walk over them they don’t show you the items on it.
You are not asked “Pay whom?” if you are standing inside a shop, it just selects the shopkeeper whose shop you’re in.