Documentation menu

Documentation / Features

Interface

In a text game the scrolling text is the interface, so Emunah's panels sit around it and never over it. They draw from the same state the curing engine acts on, so what you see is what Emunah is about to do.

Mudlet with Emunah's interface: room, afflictions and defences on the left, the game text in the centre, chat and the map on the right, and the combat HUD along the bottom.
Everything about you on the left, everyone else on the right, and the combat HUD directly under the last line of text, where you are already looking.

Layout

WhereWhat
LeftThe room, your afflictions and your defences, one above the other.
RightChat in tabs, and the map beneath it.
BottomThe combat HUD: buttons, target, vitals and the balance strip.
TopA scrolling ticker for anything you must not miss.

Each region is a Mudlet window you can move and resize, and the game text's borders follow them, so a panel never covers a line of text.

Sizing the left column

The left column divides its height by what each panel actually holds, so a crowded room or a long defence list is shown in full. When it cannot all fit, defences go to more columns and short item names pair up before anything scrolls. A panel that needs more room gets it at once, but gives room back only after three seconds without needing it, so afflictions coming and going in a fight do not shake the panels below them.

To size afflictions or defences yourself, drag the divider along the panel's top edge; it lights when the mouse is over it. The panel keeps the height you gave it and shows as much as fits, and the room takes what is left. Double-click the divider, or type emset ui auto, to hand it back to sizing itself. Resizing the window or the column lays the panels out again.

Room

Where you are, with the room's number, exits and any shop or bank. Then three groups, each with a count:

While you are walking somewhere, the panel shows where to, the steps left and roughly how long, with a link to stop or carry on. The game leaves out anyone shrouded, hidden or phased, so the people list is everyone the game admits to, not necessarily everyone there.

The room's area is also added to the end of the room-name line in the game text (ui.roomArea).

Afflictions

Afflictions are listed in curing order, and each row answers what Emunah is doing about it:

The row saysMeaning
curingThe cure has been sent and the game has not answered yet.
nextEverything is ready; it goes out on this prompt.
herb 1.4sIts balance is recovering, and this is how long is left. Rows queued behind it show their place instead.
× paralysisIts only route is shut by another affliction, named.
held: inquisitionA situational rule is holding it, and why.
a reasonWhy Emunah refused it, such as "in the rift", so a refusal never looks like a hang.

A filled dot means the server reports the affliction; a hollow one means only the game text has, and it is waiting for the server to confirm it. Above the rows, any state that holds every command (stunned, asleep, prone, unconscious, or an arm off balance) shows as a pill. Below them, one line per blocking affliction reads off which balances it shuts.

Defences

Defences are grouped by what raises them: elixirs, herbs, minerals, salves and pipes first, then each skillset by the game's own name for it (Devotion, Tattoos, Vision and so on), then anything Emunah cannot place. Only the defences you have switched on with emset defs are listed, in alphabetical order within a group, so the rows change only when that list does. A defence that is up is green. One that is down is yellow if it is on defup, and bright red on a red background if it is on keepup. Nothing moves when a defence drops or comes back; only its colour changes. The title counts how many are up out of how many are listed, and how many kept-up defences are down. They are always three to a row, and the panel is only as tall as its rows. See Defence maintenance.

The combat HUD

The left half of the combat HUD: the hunt and pause buttons, the target bar, the commands awaiting an answer, the health gauge with the damage just taken, the mana gauge, and the first cells of the balance strip.
The left half of the HUD in a scripted fight, drawn by Emunah's own code.

Three rows, directly above the command line:

The balance strip

One cell for balance and equilibrium, then one for each curing balance: herb, salve, sip, purgative, smoke, focus, moss and tree.

The cellMeans
Green, with a tickReady.
Blue, with an arrowA command was sent on it and the game has not answered.
Grey, with secondsRecovering. The game's own figure where it states one.
Red, with a crossShut by an affliction, or by paralysis.
DimNothing to use, such as the tree cell with curing.tree off.

The strip applies exactly the rules the queue does, so it cannot show a balance as ready that Emunah would not send on.

On the prompt

A few things are added to the end of your prompt, where you are already looking:

Chat, map and ticker

Channels are captured into tabs: All, then tells, city, house, market, says and the rest, chosen and ordered with ui.chatTabs. A tab you are not looking at counts what it missed, tells in the warning colour, and the chat's title bar sums them. Only the tab on screen is drawn into; the others catch up when you show them, and each keeps its own scrollback. Clicking a line's time puts the reply on the command line. History is kept per tab and survives emreload.

emset chat shows the tabs; emset chat mute <channel> keeps a channel out of the window, and emset chat route <channel> <tab> sends it to another tab. Capture and display are separate, so one failing never takes the other with it.

The map sits below the chat, follows you, and lights the route of any walk. emset map size small|big|biggest gives it 30%, 50% or 70% of the window's height, ui.mapFloat detaches it into its own window, and emset ui map off hides it. See Map and walking.

The ticker across the top scrolls continuously, up to three messages at once, for notices that must not scroll away, such as having no shield wielded. A label in the game window says when curing or keep-up is paused, so a system quietly doing nothing is impossible to miss.

Names in the text

Known people are coloured where they appear in the game text, by what they are to you: dark red for your city's enemies, green for allies, otherwise their city, with any other enemy underlined. Weight carries the rest, such as a Dragon or someone you marked as important. Your own name is never highlighted. See People and names.

Keys

KeyDoes
NumpadMovement in all eight directions, 0 and . for in and out, minus and plus for up and down, and 5 to look, with or without Num Lock. keys.numpad turns it off.
Ctrl+F5Reload Emunah.
F1PvP attack. Turns PvP on and attacks at once; pressed again in attack mode, turns it off.
F2PvP defence. Turns PvP on and holds the attack.
F3PvP hinder. Turns PvP on.
F4PvP finish. Turns PvP on.
F9Support mode on or off: attack what your leader attacks.
F11Start hunting, or stop it.
F12Turn PvP off, stop any hunt, and walk to your safe room, map.safeRoom.

What it costs

Mudlet runs every package on one thread, so a repaint is time the client is not reading or sending. Emunah's panels paint once, after each packet has been handled, never before a cure has been sent, and not at all when nothing they show has changed. Countdowns redraw every 0.2 seconds only while something is counting (ui.refresh). See Performance for the measurements.

emset ui                # whether the panels and the map are on
emset ui rebuild        # rebuild every panel; fixes one that is missing or stuck
emset ui auto           # panels you sized by hand size themselves again
emset ui map on|off