Center zombie counters and use ASCII HUD separators

This commit is contained in:
2026-10-17 16:12:39 -04:00
parent d7bf16e9c2
commit 7b95f604b4
13 changed files with 238 additions and 104 deletions
+26 -16
View File
@@ -362,11 +362,14 @@ settles legacy and public journals without duplicate ledger entries or lost poin
## Core HUD and service window (T5 and T6)
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.
left, `TWS ZOMBIES | discord.tws.lol` centered along the top, and the zombie
count centered near the bottom above a slim health bar. The complete
`N ZOMBIES` text uses one centered element at the health track's midpoint,
keeping the group centered as the count gains or loses digits. It uses a
uniform font scale of `1.25` and shows `-- ZOMBIES` before data is available.
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
@@ -401,7 +404,7 @@ count appears only when more than one page is needed. Each page lasts
command restarts page one. Both engines position rows explicitly, avoiding
T5's newline-rendering problem.
Records use the same service area, right aligned: `Map record · Round N`
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
@@ -411,19 +414,24 @@ 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
elements. The core uses 10 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 `1.4.2` requires matching common `1.4.0+` and
[Plutonium r5334+](https://plutonium.pw/docs/changelog/#r5334) on both games.
The centered counter uses `SetTextUnlimited` only when the count changes,
avoiding dynamic counter strings in the text config-string pool. Numeric HP
still uses `SetValue`. On r5334+, deploy the updated HUD script and restart
the map; no full server-process restart is required. On older Plutonium
revisions, update clients and server and fully restart them before deploying.
AFK `1.2.0` and leaderboard `1.1.0` remain compatible; AFK still requires
common `1.4.0+`. There is no new native-plugin or backend requirement. 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
@@ -445,7 +453,9 @@ Before rollout, validate both engines in Plutonium:
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.
geometry scales with viewport width. Check `0`, `6`, `9`, `10`, `99` and
`100 ZOMBIES`: the entire text must stay centered over the health track,
including after `.hud` hides/shows it and after game over freezes the count.
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. HP numbers must
@@ -509,7 +519,7 @@ 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 as right-aligned text in the
common-owned upper-right service area: `Map record · Round N`, followed by up
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