From The Mana World

This article is for reference purpose

The features described in this article are already implemented in the game. The article should describe how a certain aspect of the game currently works. You may of course edit this article to improve the description of the circumstances. Your opinions or improvement suggestions about the described aspects themself are of course appreciated, too. But please put these on the discussion page of this article to keep facts and fiction separated.

Purpose

The purpose of this document is to propose a generally new way of handling keyboard input, that streamlines several features we want to introduce in this area like consistent shortcuts, user-definable keys and a nice cooperation with the GUI. The primary problem it tries to solve currently is the conflict between GUI and chatting about the usage of the Enter key.

The current keys as from the README file:

~~~ ~~~~~ Updated!
- Alt + S            Toggle sit/stand
- Alt + F            Pathfinder Debug indicator
- A                  Targets the nearest monster (but won't bum-rush with melee weapon)
- F1                 Help
- F2                 Stats
- F3                 Inventory
- F4                 Equipment
- F5                 Skills
- F6                 Mini-Map
- F7                 Chat console
- F9                 Setup
- F10                Map/etc Debug Window

- Left Ctrl          attack
- Alt + 0-9          show emotions
- G or Z             pick up item
- Enter              focus chat window / send message
- Left Shift         hold it when attacking to lock target for auto attack

Chatting

At the moment you press Enter to start a chat message. This makes the chat box appear so that you can type your message, until you press Enter again to send it. While typing your message, you can move your cursor with Left and Right, and navigate your chat history with Up and Down.

Problems:

  • Enter is also used for confirming a pop-up dialog.
  • People forget about pressing Enter (for example ElvenProgrammer)
  • It is not possible to walk while having a message in progress.

Instead of Enter, we could use any valid chat character to immediately start the chat message. Also, we could move cursor and history navigation to be only possible when using the arrow keys in combination with Alt, while without control would still move your character as normal. Now Enter can be used without problems for confirming a dialog, while you could still start typing a chat message while a dialog is active.

Dialogs

I'd propose to move the toggling of dialogs to the function keys.

World interaction

We're using Ctrl for attacking and this seems fine to me. I'd propose to start using this key also for friendly interaction with the world, like initiating a trade with an NPC, picking up an item or opening a door.

World interaction also requires selection of a target. While you can rely on walking up to and facing the thing you want to interact with, this is not always convenient. An NPC could be surrounded, a monster could be approaching diagonally, or the interaction could be meant to be used from a distance. I'm thinking about using either Tab/Shift+Tab to iterate through possible targets, or Shift+Direction. I'm leaning towards the latter now because Tab would already be used for navigating GUI widgets, but then I think that's a bigger problem that needs to be solved differently (see problems still remaining, below).

If there are multiple actions that can apply to a certain object this should be made clear in some way. I think we could use Shift + Ctrl or Alt + Ctrl to make a menu appear with all options.

Special commands

There's a few special commands already in use now and any number could be added in the future. These special commands include using emotions and sitting down / standing up. In this area we could also allow the user to set up a custom key binding for a special command, possible through the use of IRC-like chat messages bound to keys. I think we should use Alt consistently as the modifier key for these commands.

Problems still remaining

It will still be impossible to control the general GUI like your inventory or the trade dialog with your keyboard. In the longer term the plan is to solve this issue, and I think we'll have to do this by turning off control over your character while these dialogs are active. This would make the arrow keys and action key available for GUI control.

Table of keys

Function Key(s)
Walk around Left, Right, Up, Down
Select target Tab / Shift + Tab or Shift + Direction
Default action (attack, pickup, trade, talk) Ctrl
Show menu with all actions Alt + Ctrl
Start chatting / continue writing chat message a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, ø, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, Ø, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, !, @, #, $, %, ^, &, *, (, ), -, _, =, +, {, }, [, ], ;, :, ', ", <, >, /, ?, ~, `, \, |
Move cursor in text input field Alt + Left, Alt + Right
Navigate history of chat messages Alt + Up, Alt + Down
Confirm dialog Enter
Toggle help window F1
Toggle profile window F2
Toggle inventory window F3
Toggle equipment window F4
Toggle skill window F5
Toggle map window F6
Toggle chat window F7
Toggle debug window F8
Toggle setup window F9
Sit down / stand up Alt + S, /sit
Use emotion Alt + 0-9, /emot 0-9


Comments

Ok let me be the first one, it is a nice or at least it's a good start on pointing things out in a clearer way. I strongly suggest to use Shift + direction to target since it would be very useful, for example in ranged attacks, a quick way to target the right monster, especially in dangerous situations. I guess with the system you proposed we lost the possibility to have rebindable keys (apart from action keys Shift/Alt/Ctrl and Alt + ...). This is not bad in my opinion because it gives us a confortable and easy control system. Probably there will be to fix something that we will discover only when we will apply such a system. --ElvenProgrammer 16:31, 20 Sep 2005 (CEST)

Action keys could be rearranged but not many rebinding is possible as basically all keys are taken. The main area where people could do some key binding would be in the special key zone. I would probably still like most of the keys to be configured dynamically though, and at least allow them to be changed through the config file. I think the main focus should be on a convenient default setup, and have key binding be a feature for power users or people with broken keys on their keyboard. It just occured to be that the special keys could be used for example to bind to a certain weapon, piece of equipment or spell that you'd like to have readily available. --Bjørn 16:44, 20 Sep 2005 (CEST)