mirror of
https://github.com/Mudlet/Mudlet
synced 2026-08-13 18:26:27 -04:00
#### Brief overview of PR changes/additions - New "Mudlet base UI" package auto-installed for new players on every game: adjustable right-side dock with map (placeholder until the game is mapped), tabbed chat (All/Tells/Channels with unread badges) and themed HP/MP/MV/XP gauges - only ever built from data the game actually provides - Chat capture: GMCP Comm.Channel.Text when available, otherwise a generic additive trigger layer (line shapes distilled from an audit of all 216 packages in the Mudlet package repository); nothing is ever gagged, and the trigger layer retires itself the moment GMCP chat appears - Vitals ladder for the gauges: GMCP (several dialect spellings) > MSDP (negotiated automatically) > self-sufficient prompts (labeled cur/max or percents) > score-screen harvesting; when a prompt only shows bare currents, Mudlet sends `score` once - visibly, with an announcement - to learn the maxima. Maxima are never guessed. An enemy-health bar appears during fights on games that report it - `baseui hide` / `baseui show` opt-out persists across restarts; first-run announcement defers to the UI tour; experienced players never get the package - Plays nice with games that provide their own interface: profiles for games whose bundled loader installs the game's official UI (flagged in TGameDetails: Carrion Fields, Icesus, MorgenGrauen, Medievia) skip the starter UI entirely, and when a game pushes a `Client.GUI` package the starter UI quietly stands aside (via the new `sysServerGuiInstalled` event) - `baseui show` brings it back for players who prefer it - `docs/package-capture-audits/` records the chat + vitals capture audits (with provenance) behind the design #### Motivation for adding to Mudlet New players currently get a bare text screen; this gives every game - GMCP-rich, MSDP-only or plain telnet - an immediate, honest starter UI out of the box. #### Other info (issues closed, discussion etc) Progresses #3071 and #3070 (phase 1 - not closing them). **Test case:** Fresh install → create a profile for any game → connect. On GMCP/MSDP games the dock builds with ticking gauges and tabbed chat; on a game whose prompt carries cur/max values, gauges appear once the prompt repeats; on a bare-number prompt, `score` is sent once (announced) to size the gauges; on pure chat games, tells/says/channels are captured with no gauges invented. `baseui hide` removes it and survives restart. https://github.com/user-attachments/assets/56d207cc-5bad-4464-867c-1a810d41cf2f --------- Signed-off-by: Vadim Peretokin <vadim.peretokin@mudlet.org> |
||
|---|---|---|
| .. | ||
| chat-capture-catalog.md | ||
| chat-capture-findings.json | ||
| README.md | ||
| vitals-capture-catalog.md | ||
| vitals-capture-findings.json | ||
Package-repository capture audits
Empirical basis for the starter UI ("Mudlet base UI") capture design: every package in mudlet-package-repository (216 packages at commit d2dead2, audited 2026-07-16) was analyzed for how it captures game text and character data, with file-level provenance for every mechanism.
chat-capture-catalog.md- chat/text capture: mechanism taxonomy, routing patterns, per-channel regex library, GMCP dialects, and the layered capture design the starter UI implements (79 packages, 281 mechanisms).chat-capture-findings.json- the raw chat corpus behind the catalog.vitals-capture-catalog.md- character data (hp/mana/xp/affects/enemy-hp): GMCP dialect map, MSDP variables, prompt-shape families, and the maxima problem (63 packages, 451 mechanisms).vitals-capture-findings.json- the raw vitals corpus behind the catalog.
Method: per-package analysis with cross-checking against keyword-based recall lists, then a second pass over any package flagged as capture-likely but reported empty. Counts of cross-game convergence are by independent game, not package, to compensate for the corpus's IRE/Achaea skew.