Show personal map records on join and replay

This commit is contained in:
2026-10-19 14:11:54 -04:00
parent 9ef5932d36
commit e93182cd02
11 changed files with 620 additions and 200 deletions
+44
View File
@@ -6,6 +6,50 @@ T5/T6 script and each native plugin. Current versions are recorded in
## 2026-10-18
### Show each player's personal map record on join and replay
| Component | Version | Affected source |
| --- | --- | --- |
| `tws_t5_leaderboard.gsc` | `1.3.1` | `t5/scripts/tws_t5_leaderboard.gsc` |
| `tws_t6_leaderboard.gsc` | `1.3.1` | `t6/scripts/tws_t6_leaderboard.gsc` |
| `tws_t5_common.gsc` | `1.6.1` | `t5/scripts/tws_t5_common.gsc` |
| `tws_t6_common.gsc` | `1.6.1` | `t6/scripts/tws_t6_common.gsc` |
- Add a private `Your Best | Round N` heading to join announcements and `.leaders`,
using the same resolved map variant as the fleet record. Distinguish confirmed
empty history (`None yet`) from failed/malformed lookups (`Unavailable`).
- Show `Map Record | Round N`, every tied holder on a separate line, a blank row,
then the personal heading. Both headings use the brighter heading colour and
size, distinct from player names. Remove record pagination and counters: show
the entire record for 12 seconds, retaining help priority and pause/resume.
Allocate one element per holder plus the two headings, resize when the holder
count changes, and release the complete view on expiry, interruption or cleanup.
Help retains its existing command pagination; compact reminders are unchanged.
- Query the existing public leaderboard search by GUID, paginate past name and
substring matches, and accept only exact string identity with matching game/map
evidence. Cache successes per connection for five minutes and failures for
30 seconds. Bound pagination time and queue waits; serialize personal and map
HTTP requests, retaining the native slot until collection even after a caller
times out or disconnects. New manual replays cancel older waiting announcements.
- Apply matching behavior to T5 and T6 using their existing GUID access and HTTP
APIs. Round reminders still use only the map cache. Common's new personal text
argument is optional for existing consumers.
- Compatibility: leaderboard `1.3.1` requires matching common `1.6.1+`. No new
backend, native-plugin or upstream dependency requirement.
- Validation: 177 leaderboard, 76 service HUD, 14 core HUD, 42 bank, 17 join,
23 telemetry, 76 lock and 47 AFK checks passed, plus both moderation checks.
Record fixtures verify all-holder rendering, heading order/style/spacing, no
record counter, resizing, expiry and help interruption.
Changed T6 scripts compiled and assembled with upstream gsc-tool `8f1d6bd`
libraries. These are engine-shim checks; live Windows/Plutonium rendering,
concurrent joins and backend integration remain unverified. T5 has no gsc-tool
backend. JSON uniqueness, script manifest coverage, matching versions/changelog,
changed documentation's local links and `git diff --check` passed.
- Deployment: copy the updated leaderboard and common scripts together for each
installed game and restart the map. No full server-process restart or additional
deployment action is required. No deployment was performed.
### Add majority votes to lock and unlock the lobby
| Component | Version | Affected source |