Simplify T5 and T6 HUD overlays and service displays
This commit is contained in:
@@ -361,39 +361,69 @@ settles legacy and public journals without duplicate ledger entries or lost poin
|
||||
|
||||
## Core HUD and service window (T5 and T6)
|
||||
|
||||
The HUD uses a fixed upper-right panel below the top edge, leaving room above
|
||||
for performance overlays and below for stock player scores, ammo and equipment.
|
||||
The header contains `TWS ZOMBIES` and `discord.tws.lol`; match and round timers
|
||||
share the next row. Zombie count and current/maximum HP sit above a full-width
|
||||
health bar. HP numbers remain visible at full health. A reserved footer holds
|
||||
the AFK indicator; the former co-op player-name row is removed.
|
||||
The core uses a light, unboxed layout: match time above round time at the upper
|
||||
left, `TWS ZOMBIES · discord.tws.lol` centered along the top, and the zombie
|
||||
count centered near the bottom above a slim health bar. Current/maximum HP
|
||||
appears to the right of the bar only while injured, then disappears at full
|
||||
health. The AFK indicator sits above the zombie count. Text uses an outline for
|
||||
contrast; there are no panel backgrounds or timer labels.
|
||||
|
||||
Fullscreen X/Y anchors bypass safe-area insets. Overlay positions and shader
|
||||
widths use the normalized `640 × 480` viewport directly. Text uses a minimum
|
||||
font scale of `1.0`. Check the upper-left timers
|
||||
against stock map inventory/objectives and performance overlays, and keep the
|
||||
upper-right service area below the Plutonium tag. Physical proportions vary
|
||||
with aspect ratio, so verify text fit and screen-edge clearance in-game.
|
||||
|
||||
The core is created once per connection and stays in place when services open,
|
||||
across death and respawn, and while newcomers spectate. Unavailable values use
|
||||
placeholders until the first-spawn callback binds the data displays. Creating the
|
||||
panel does not start the match clock. Each engine retains its timer behavior;
|
||||
clocks, health and zombie-count displays freeze at game over. Health display
|
||||
fallbacks never modify gameplay max health.
|
||||
placeholders until the first-spawn callback binds the data displays. Creation
|
||||
does not start the match clock. Each engine retains its timer behavior; clocks,
|
||||
health and zombie-count displays freeze at game over. Health display fallbacks
|
||||
never modify gameplay max health.
|
||||
|
||||
Common owns one fixed-height service window directly below the core. `.help`
|
||||
and its `.commands` alias show four commands per page, with command and
|
||||
description columns plus a page count. Pages advance automatically every
|
||||
12 seconds and close after the last page. Repeating either command restarts
|
||||
page one. The order is `.help`, `.afk`, `.back`, `.join`, `.leaders`, `.b`, `.d`,
|
||||
`.w`, omitting commands whose modules are not registered. The `.join` description
|
||||
continues to identify its newcomer restriction.
|
||||
Type `.hud` in chat to hide or show your core, including its branding, timers,
|
||||
zombie count, health bar, damage-only HP and AFK indicator. The exact command
|
||||
is case-insensitive. Visibility defaults on and persists across death/respawn
|
||||
within the current connection/map; reconnecting or restarting the map restores
|
||||
the visible default. Data and timers continue updating while hidden, so showing
|
||||
the HUD restores current values or the frozen game-over values. Help, records
|
||||
and the stock HUD remain unaffected.
|
||||
|
||||
Records use the same service window. Help pauses a visible record and resumes
|
||||
its remaining page time when help ends. `.leaders` during help replaces the
|
||||
pending record with a fresh replay from page one. One service is visible at a
|
||||
time, and neither changes the core's position or height. Services are private
|
||||
to the requesting player and work when the HUD module is omitted.
|
||||
Common owns one unboxed service area at the upper right. `.help` and its
|
||||
`.commands` alias show all nine installed commands in one list with command
|
||||
and description columns: `.help`, `.hud`, `.afk`, `.back`, `.join`, `.leaders`,
|
||||
`.b`, `.d`, `.w`. Missing modules' commands are omitted. Bank syntax remains
|
||||
`.d <amount|all>` and `.w <amount|all>`, and `.join` identifies its newcomer
|
||||
restriction. Additional registered commands use pages of nine rows; a page
|
||||
count appears only when more than one page is needed. Each page lasts
|
||||
12 seconds and the list closes after the final page. Repeating either help
|
||||
command restarts page one. Both engines position rows explicitly, avoiding
|
||||
T5's newline-rendering problem.
|
||||
|
||||
Install HUD `1.2.0`, leaderboard `1.1.0` and AFK `1.0.1` with the matching
|
||||
game's common `1.2.0+`; update the installed scripts together and restart the map.
|
||||
There is no new native-plugin or backend requirement, and this change does not
|
||||
require a full server-process restart. Existing leaderboard plugin requirements
|
||||
still apply. Unchanged modules retain their existing common helper interfaces.
|
||||
Records use the same service area, right aligned: `Map record · Round N`
|
||||
followed by up to three bounded holder lines. Single-page records have no
|
||||
counter or footer; ties spanning multiple pages retain a page count and
|
||||
12 seconds per page. Help pauses a visible record and resumes its remaining
|
||||
page time when help ends. `.leaders` during help replaces the pending record
|
||||
with a fresh replay from page one. One service is visible at a time. Services
|
||||
remain private and work when the HUD module is omitted.
|
||||
|
||||
Both games allocate only the active service view and release it when idle or
|
||||
before switching between help and records. Pages reuse the active view's
|
||||
elements. The core uses 11 archived elements, plus one for AFK. The standard
|
||||
nine-command help view uses 19 nonarchived elements, or 20 with a multi-page
|
||||
counter; records use four, or five with a multi-page counter. Hidden elements
|
||||
still occupy slots. The controller and pending requests are separate from
|
||||
display lifetime, so an idle service holds no HUD elements.
|
||||
|
||||
HUD `1.4.0` and AFK `1.2.0` require matching common `1.4.0+` on both games.
|
||||
Update common, HUD and AFK together where installed, then restart the map.
|
||||
Leaderboard `1.1.0` remains compatible. There is no new Plutonium, native-plugin
|
||||
or backend requirement, and this change does not require a full server-process
|
||||
restart. Existing leaderboard plugin requirements still apply. Common retains
|
||||
its older panel helpers for unchanged consumers; the new layout uses fullscreen
|
||||
overlay helpers with the same integer shader-width handling.
|
||||
|
||||
### HUD validation
|
||||
|
||||
@@ -410,16 +440,23 @@ Before rollout, validate both engines in Plutonium:
|
||||
|
||||
1. Check 16:9 and narrower/wider resolutions, safe-area settings, long match
|
||||
timers, stock map inventory/objectives, performance overlays, player scores,
|
||||
ammo and interaction prompts. The core and service panels must stay clear of
|
||||
these areas and retain their geometry for every page.
|
||||
ammo and interaction prompts. Check upper-left timers, top-center branding,
|
||||
bottom-center zombies/health and the upper-right service area. Text must stay
|
||||
legible without panel backgrounds; services must clear the Plutonium tag.
|
||||
Verify the health-bar fill stays within its track and damage-only HP clears
|
||||
stock scores/ammo. Check text fit at other aspect ratios because horizontal
|
||||
geometry scales with viewport width.
|
||||
2. Join before spawning, join mid-match, die/respawn and reconnect. Verify one
|
||||
core per player, spectator placeholders, no early match-clock start, correct
|
||||
health/Juggernog changes, and frozen timers at game over. Toggle AFK and back
|
||||
without overlapping the health bar or changing existing protection behavior.
|
||||
3. Open `.help`, `.HELP` and `.commands` with all modules installed. Verify two
|
||||
pages of four commands, 12 seconds per page and automatic dismissal. Repeat
|
||||
on page two to return to page one. Remove optional modules and restart the
|
||||
map to confirm filtered pages, then restore them.
|
||||
health/Juggernog changes, and frozen timers at game over. HP numbers must
|
||||
appear only while injured and disappear on full healing. Toggle AFK and back
|
||||
without overlapping zombies/health or changing existing protection behavior.
|
||||
3. Open `.help`, `.HELP` and `.commands` with all modules installed. Verify
|
||||
one list of nine commands, full bank syntax, no single-page counter and
|
||||
automatic dismissal after 12 seconds. Add custom registered commands to
|
||||
exercise the nine-row page limit, page counter and repeat-to-restart behavior.
|
||||
Remove optional modules and restart the map to confirm filtering, including
|
||||
`.hud` disappearing without HUD, then restore them.
|
||||
4. Interrupt records with help and check that the interrupted page resumes for
|
||||
its remaining time. Repeat `.leaders` while help is open; only the latest
|
||||
replay should start, at page one. Check long holder names, ties spanning
|
||||
@@ -428,6 +465,16 @@ Before rollout, validate both engines in Plutonium:
|
||||
request them again. Verify no duplicate elements, stale timeout closures or
|
||||
surviving service windows. Confirm `.join`, bank commands and lobby lock
|
||||
retain their existing behavior with their required modules installed.
|
||||
6. Toggle `.hud` and `.HUD` before spawning, during play, while AFK and after
|
||||
game over. Check private visibility, all core elements and the AFK indicator,
|
||||
continued updates while hidden, and unchanged help/records/stock HUD. Verify
|
||||
death/respawn preserves the choice and reconnect/map restart restores visibility.
|
||||
7. On T5, watch the first automatic record announcement and its dismissal, then
|
||||
repeat `.leaders`, help and interrupted/resumed records. Verify the core
|
||||
health bar, damage-only HP, zombie count and timers remain intact while a
|
||||
service is visible and after it closes. Include stock round/connection
|
||||
notifications and other installed HUD mods; portable allocation checks do
|
||||
not establish live T5 SP rendering capacity.
|
||||
|
||||
## Map record announcements
|
||||
|
||||
@@ -438,8 +485,8 @@ round and every tied holder once per connection, including spectator newcomers.
|
||||
Type `.leaders` to replay the record privately from the latest usable cache.
|
||||
Repeating the command restarts the announcement from its first page. It appears
|
||||
in `.help` when the leaderboard module is enabled. If no usable record is
|
||||
available, the service window identifies the record as unavailable and keeps
|
||||
the `.leaders` retry reminder; this differs from a valid empty record history.
|
||||
available, the service identifies the record as unavailable; this differs from
|
||||
a valid empty record history. Neither state adds a replay footer.
|
||||
It reads Electric Cherry's public `/api/leaderboard` endpoint without a token;
|
||||
only completed matches contribute. Ties may come from the same run or separate
|
||||
runs. Names are the API's latest player names, with players identified by GUID.
|
||||
@@ -461,17 +508,18 @@ exist in the API's map list and match the current game and engine map. Clear it
|
||||
when changing variants; restart the map after changing these settings.
|
||||
|
||||
The announcement starts five seconds after player readiness and waits for the
|
||||
initial record fetch if necessary. It appears in the common-owned service
|
||||
window beneath the core, with a `MAP RECORD` heading, prominent round value,
|
||||
holder names, page count and `.leaders` replay hint. Each page shows up to three
|
||||
holder lines for 12 seconds. Opening `.help` pauses the record's remaining
|
||||
initial record fetch if necessary. It appears as right-aligned text in the
|
||||
common-owned upper-right service area: `Map record · Round N`, followed by up
|
||||
to three holder lines. There is no background or replay footer, and a page
|
||||
count appears only for multi-page records. Each page lasts 12 seconds. Opening `.help` pauses the record's remaining
|
||||
page time until help closes. A `.leaders` request during help replaces any
|
||||
pending replay and starts from page one after help closes.
|
||||
All holders are included; colour/control codes are removed, and overlong
|
||||
individual names are abbreviated without splitting UTF-8 characters. Bounded
|
||||
lines and additional pages preserve every tied holder. The window hides when the
|
||||
announcement finishes and its elements are reused for subsequent services.
|
||||
Disconnect or game end cleans up service elements.
|
||||
lines and additional pages preserve every tied holder. The window closes when
|
||||
the announcement finishes. Both games release their view elements when idle or
|
||||
changing service kinds. Disconnect or game end cleans up any remaining service
|
||||
elements.
|
||||
|
||||
One level worker fetches the map list and pages of three players, stopping when
|
||||
the highest-round tie ends. Successful snapshots refresh every five minutes.
|
||||
|
||||
Reference in New Issue
Block a user