Skip to content

User Interface Improvements

Edgar A. Bering IV edited this page Apr 16, 2023 · 2 revisions

The following topics are areas where crawl's UI can be unambiguously improved. Pull requests implementing ideas on this page are particularly welcome. If you are working on one of these for an upcoming release, move it to that release plan.

Many of these improvements have added benefits for players with visual or motor impairments. Some of these are explicitly added as accessibility goals, and these are highest priority interface improvements. They are marked as such. Accessible Crawl has general considerations, external resources, and longer term goals that have significant technical hurdles.

Item interaction

Item shortcuts in interaction screens

In the read dialog ? selects the first scroll, ditto for ! in quaff. These should be disabled. In the inventory screen, ?!/"=()]%} all select the first item in the relevant category. This should instead scroll to the relevant category. In the discoveries \ menu, which also includes autopickup toggles, item category keys currently select that category. This should be toggleable to only scroll to that category, and even without the toggle should scroll to the relevant category.

Items under plants

Mantis bug 764. Items under allied plants are invisible in console.

^ refers to last item picked up

For all commands that require an item from the inventory (read, quaff, put on, wear etc.), ^ should be the shortcut to mean "the item (of that sort) I've last picked up". For this to be useful, after pressing q (for example) we should print:

Quaff which potion? (Press ^ for [last potion].) if automenu is not used. List the ^ at the very top of the screen if the menu is displayed. The advantage of this system is that players have to press fewer letter keys, leading to less screen-keyboard focus switches.

Shortcuts for R and don't display a menu

When Removing jewellery the screen should only show equipped jewellery and accept both item letters and "<> shortcuts for amulet, left, and right hand (or tentacle numbers for Octopode). This can probably be put in the message channel and not use a menu, like the prompt when replacing a jewellery item; in this case the prompt should only use the shortcuts.

Wield weapon information screen

The display for w should look more like the spell information screen I. A mock-up would look something like this (you can tell its age and how long this has been desired):

Wield which weapon?

Weapon                 Accuracy     Damage     Speed         Brand          Other
-) Unarmed             Good         ##..       ########      Confuse    
a) +0,+4 dagger        Excellent    ###..      ######..      N/A
b) -1,-2 dagger "Gyu"  Excellent    ##...      ######..      Protection     Blink, SInv, rElec
c) +8,+8 scimitar      Fair         ######...  ###...        Flame

Accuracy, Damage, and Speed would be skill and stat adjusted. Speed can be displayed as a number, since we reveal those numbers. Damage is a random variable, bars are probably not the best, and something to indicate that this does not include brand damage is needed. Including ammo information for launchers would also be nice; throwing would need to be incorporated somehow, it's not immediately clear the best way to go about it. The solution would be applicable to slings for stones/bullets also.

The base damage and accuracy numbers are provided, and a spoiled player can look up the (complicated) formulas. Players regularly ask questions about "which weapon is better" and more regularly get misled by weapon plus, artifact status, &c. Some of this can be learned with experience, but the process is slowed by the game being obtuse here.

Part of the game's obtuseness is impacted by the nature of the damage formula: it is not a simple dice distribution, but a product of uniform distributions. See the discussion in issue 2007 for some concrete examples of the challenges in clearly summarizing the behavior of this random variable in a way that helps the player make a good decision.

Map, overview, and travel

More verbose travel stop messages Accessibility Improvement

Instead of “Sorry, I don't know how to get there.” print a reason. Now partially implemented! Still fails to explain that it can't find stairs (because of shafting or teleporting for example).

More verbose/accurate auto explore stop messages Accessibility Improvement

Instead of "Partially explored, couldn't reach some places" explain what can't be reached. There is some of this for runed doors and unvisited transporters, but not if auto explore failed to find all three stairs. Related mantis bugs 2748 11831 11764

Allow continuing autotravel with G in portal vaults Accessibility Improvement

Currently all use of the inter-level travel command G is blocked in portal vaults to protect the player from accidentally leaving the level. There are still safe and useful uses though: continuing interrupted travel commands on the same level (issued via X, should be G+return as usual), and going to the nearest exit (could be G+< or G+e).

Auto-travel to traversable squares adjacent to non-traversable ones Accessibility Improvement

If the player selects a non-traversable target with traversable cell adjacent, prompt before failing.

Dungeon overview (^O)

Differentiate between found and reachable altars

It can happen that you have all altars to some god are unreachable (because of fog, glass, water, lava). It would be good to display this on the Ctrl-O display, ideally with colours: unknown altar = darkgrey, reachable altar = white, all altars unreachable = lightgrey.

Symbolic altar status display Accessibility Improvement

Altars displayed in the Ctrl-O display have their status communicated entirely with colour. Add annotation symbols to this display along side the colours and a key for these symbols.

Help screen

Currently there are no commands; but there is religion information in ^O and it is communicated via colour code. This should be explained in a ? help for ^O. Later parts of this section talk about adding commands to ^O which would of course require a help line.

Messages

Enable searching in the manual and the message log Accessibility Improvement

All scrollable screens accessed through ? should be searchable through ^F in game (yes they're text files but these aren't readily available to an online player). This should also be extended to the message log ^P.

Targeter

Use L to display the line of sight of the targeted monster

Currently, players curious about the line of sight of a given enemy (for the purposes of breaking it or what have you) use travel exclusions to get a display of LOS. This works (except in the abyss) but is a clunky hack and should instead be offered as a real feature.

Display relevant information when targeting

Progress has been made on this front, with hex chance displaying, needle chance, and pacification chance (or immunity) shown in the targeter. This should be generalized to display other resists and immunities as relevant.

Filter ^x with category selectors and ^F searching Accessibility Improvement

The ^x display is a useful quick look for console players as well as an important accessibility feature. When there's a lot going on, it can get quite full. Adding menu selectors to toggle the display of monsters, items, and features, as well as search functionality, is desired.

Better handling of strange disturbances aka detected invisible monsters Accessibility Improvement

Currently they appear in the viewport and only the viewport as a single glyph. They should be displayed/selectable everywhere a monster is displayed/selectable if one is present: the monster list, x monster cycling, and ^x. Autofight should consider attacking them, and z casting should not claim you can't see anything if one is present.

Technical remark, this probably means re-implementing them as a proper monster_info instead of the awful hack they are now. This is a good thing.

Clone this wiki locally