Add majority lock and unlock voting for T5 and T6

This commit is contained in:
2026-10-18 16:01:57 -04:00
parent caaaa102a4
commit 9ef5932d36
10 changed files with 816 additions and 78 deletions
+39
View File
@@ -4,6 +4,45 @@ Changes are listed newest first, with an independent version for every individua
T5/T6 script and each native plugin. Current versions are recorded in
[versions.json](versions.json); see the [version policy](README.md#versioning).
## 2026-10-18
### Add majority votes to lock and unlock the lobby
| Component | Version | Affected source |
| --- | --- | --- |
| `tws_t5_lock.gsc` | `1.1.0` | `t5/scripts/tws_t5_lock.gsc` |
| `tws_t6_lock.gsc` | `1.1.0` | `t6/scripts/tws_t6_lock.gsc` |
- Add exact, case-insensitive `.lock` (round 6 onward) and `.unlock` commands
with help registration. Both need a strict majority of all connected players:
1/1, 2/2, 2/3, 3/4, or `floor(players / 2) + 1` in larger lobbies. Solo
requests apply immediately; dead, spectating and AFK connections count.
- Use a 60-second ballot with one vote per connection, no extension on repeats,
and fresh votes after expiry or state changes. Recount joins/disconnects;
disconnected votes do not count, and reconnects do not inherit votes.
- Retain the configurable automatic lock at round 20, consumed once per match.
A successful unlock overrides it for the rest of the match, including after
an early manual lock. Players can still vote to relock. Automatic locking
clears any incomplete manual lock ballot. Generate a fresh password for each
lock and clear it and pending votes at startup and HUD/stock game over.
- Keep early locking optional: no round-6 prompt. Use ordinary message text
for vote progress, expiry and state changes, with private duplicate/unavailable
replies. Update help pagination coverage and both games' documentation.
- Compatibility: no new dependency requirement. Keep the matching common
`1.0.0+` and HUD `1.0.0+` modules installed; HUD still supplies round events.
T5 and T6 receive matching behavior using their existing namespaces and
initialization conventions. No common, HUD, native-plugin or upstream-pin
source changes are needed.
- Validation: 76 lock vote/lifecycle checks, 74 service HUD checks and 14 core
HUD checks passed with engine shims. The T6 lock script compiled and assembled
with upstream gsc-tool `8f1d6bd` libraries. T5 has no gsc-tool backend; live
Windows/Plutonium loading, message rendering and connection blocking still
need validation on both engines. No native-plugin build or deployment was
performed. See [lock voting and live checks](README.md#lobby-lock-voting-t5-and-t6).
- Deployment: copy the updated lock script for each installed game to its
existing script directory and restart the map. No full server-process restart
or additional deployment action is required for this script-only update.
## 2026-10-17
### Allow solo and last-active-player AFK